汇编语言基础总结(三)

debug的使用

D命令:查看内存单元

1)d 段地址:偏移地址

2)d 段寄存器:偏移地址

a命令:写汇编指令

利用t执行汇编指令。注意:T命令在执行修改寄存器ss的指令时,下一条指令也紧接着执行。

一段完整的程序

assume cs:codesg

codesg segment

    mov ax, 2000H
    mov ss, ax
    mov sp, 0
    add sp, 10
    pop ax
    pop bx
    push ax
    push bx
    pop ax
    pop bx

    mov ax, 4c00H
    int 21H
    codesg ends
    end

exe文件加载

1)程序加载后,ds中存放着程序所在内存去的段地址,这个内存区的偏移地址为0,则程序所在的内存去的地址为 ds:0

2)这段内存中,前256个字节存放的是PSP,dos用来和程序进行通信,从256字节向后的空间存放的是程序。

u指令查看指令

int中断用p指令执行

g指令

时间: 2024-08-27 16:59:08

汇编语言基础总结(三)的相关文章

王爽《汇编语言》第三版 第十五章 外中断

引言 CPU 除了有运算能力外,还要有 I/O( Input/Output ,输入/输出)能力. 15.1 接口芯片和端口 在PC系统的接口卡和主板上,装有各种接口芯片.这些外设接口芯片的内部有若干寄存器,CPU将这些寄存器当作端口来访问. 外设的输入不直接送入内存和CPU ,而是送入相关的接口芯片的端口中. CPU向外设的输出也不是直接送入外设,而是先送入端口中,再由相关的芯片送到外设. 15.2 外中断信息 当CPU 检测到可屏蔽中断信息时: 1.如果IF=1,则CPU 在执行完当前指令后响

王爽《汇编语言》第三版 第五章 [BX]和loop指令

5.1 [bx] mov ax,[bx]功能:bx 中存放的数据作为一个偏移地址EA ,段地址SA 默认在ds 中,将SA:EA处的数据送入ax中. 5.2 Loop指令 指令的格式是:loop 标号,CPU 执行loop指令的时候,要进行两步操作: 1.(cx)=(cx)-1: 2.判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行. 通常我们用loop指令来实现循环功能,cx 中存放循环次数. 5.3 在Debug中跟踪用loop指令实现的循环程序 5.4 Debug和汇编编译器

王爽《汇编语言》第三版 第三章 内存访问

3.1 内存中字的存储 在0地址处开始存放20000(4E20H): 注意:0号单元是低地址单元,1号单元是高地址单元. 任何两个地址连续的内存单元,N号单元和 N+1号单元,可以将它们看成两个内存单元 ,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元. 3.2 DS和[address] 在8086PC中,内存地址由段地址和偏移地址组成,8086CPU中有一个DS寄存器,通常用来存放要访问的数据的段地址. 执行指令时,8086CPU自动取DS中的数据为内存单元的段地址. 3.3 字

王爽《汇编语言》第三版 第二章 寄存器

CPU概述 一个典型的CPU由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其它器件的联系. 8086CPU有14个寄存器 它们的名称为:AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW. 2.1 通用寄存器 8086CPU所有的寄存器都是16位的,可以存放两个字节. 8086上一代CPU中的寄存器都是8位的: 为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用. 1.

王爽《汇编语言》第三版 第八章 数据处理的两个基本问题

引言 本章中,我们就要针对8086CPU对这两个基本问题进行讨论.虽然讨论是在8086CPU的基础上进行的,但是这两个基本问题却是普遍的,对任何一个处理器都存在. reg的集合包括:ax.bx.cx.dx.ah.al.bh.bl.ch.cl.dh.dl.sp.bp.si.di: sreg的集合包括:ds.ss.cs.es. 8.1 bx.si.di.bp 在8086CPU 中,只有这4个寄存器(bx.bp.si.di)可以用在"[-]" 中来进行内存单元的寻址. 在"[-]&

王爽《汇编语言》第三版 第九章 转移指令的原理

引言 8086CPU的转移指令分为以下几类: 无条件转移指令 (如:jmp) 条件转移指令 循环指令(如:loop) 过程 中断 9.1 操作符offset 操作符offset在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址. 9.2 jmp指令 jmp为无条件转移,可以只修改IP,也可以同时修改CS和IP. 9.3 依据位移进行转移的jmp指令 jmp short 标号(转到标号处执行指令)这种格式的 jmp 指令实现的是段内短转移,它对IP的修改范围为 -128~127,也就是

王爽《汇编语言》第三版 第六章 包含多个段的程序

6.1 在代码段中使用数据 "dw"的含义是定义字型数据.dw即define word. 由于它们在代码段中,程序在运行的时候CS中存放代码段的段地址,所以我们可以从CS中得到它们的段地址. 因为用dw定义的数据处于代码段的最开始,所以偏移地址为0,这8 个数据就在代码段的偏移0.2.4.6.8.A.C.E处. end 除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方. 6.2 在代码段中使用栈 6.3 将数据.代码.栈放入不同的段 我们用和定义代码段一样的方法来定义多个

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

数字视频基础(三)

2.3 HDMI和DVI 2.3.1 HDMI 2.3.1.1 概述 如下图所示,HDMI电缆和连接器有4对差分线,3对TMDS数据线和1对时钟通道.这些通道用来传输视频.音频和辅助数据.另外,HDMI还有DDC通道,DDC是用来配置显示器和获得显示器状态,这里我们不讨论DDC. 音频.视频和辅助数据通过3个TMDS数据通道来传输,TMDS时钟,其频率通常是视频像素时钟频率,作为接收器的参考频率.TMDS将每个TMDS数据通道的并行8bit数据转换为直流平衡跳变最少的串行10bit数,因此发送是