汇编语言程序设计(第二版)第3章ppt课件.ppt

汇编语言程序设计(第二版)第3章ppt课件.ppt

ID:58756006

大小:324.50 KB

页数:93页

时间:2020-10-03

汇编语言程序设计(第二版)第3章ppt课件.ppt_第1页
汇编语言程序设计(第二版)第3章ppt课件.ppt_第2页
汇编语言程序设计(第二版)第3章ppt课件.ppt_第3页
汇编语言程序设计(第二版)第3章ppt课件.ppt_第4页
汇编语言程序设计(第二版)第3章ppt课件.ppt_第5页
资源描述:

《汇编语言程序设计(第二版)第3章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章基本指令与简单程序设计3.1寻址方式3.2基本指令3.3单个字符的输入输出3.4源程序的基本格式3.5顺序程序设计习题三3.1寻址方式3.1.1立即数型寻址方式这种寻址方式又称为立即数或立即寻址,是直接把参与操作的数据写在指令中。用汇编语言书写时,操作数可以是各种数制下的数值,也可以是带单引号的字符。比如,下面的MOV指令中源操作数都是立即寻址的简单情况。汇编语言要求指令在一行写完,指令后面所带的分号表示该行的后续内容是注释。MOVAL,30;源操作数是十进制形式的立即数30MOVAX,3030H;源操作数是十六进制形式的立即数3030HMO

2、VAL,11001101B;源操作数是二进制形式的立即数11001101BMOVAL,'3';源操作数是字符形式的立即数'3',即其ASCII值33H尽管MASM支持把立即数加上方括号的写法,比如上面的第一条指令也可以写成MOVAL,[30]但是,这会导致初学者概念上的混淆,建议读者不要使用这种写法。立即寻址还有一些比较复杂的情况。如果操作数是由数值和运算符构成的表达式,汇编程序在翻译时会计算出表达式的值,并把计算结果以立即数形式翻译到机器指令中。比如下面的指令中源操作数就是这种情况:MOVAL,'3'-30H该指令中的源操作数是一个可直接计算的表

3、达式。汇编程序会计算出表达式的值是3,并以3作为立即寻址方式的源操作数。3.1.2寄存器型寻址方式这种寻址方式比较简单,就是在指令的操作数部分写寄存器的名称。可用的名称有:AH,AL,BH,BL,CH,CL,DH,DL——8位通用寄存器;AX,BX,CX,DX,SI,DI,BP,SP——16位通用寄存器;CS,DS,ES,SS——16位的段寄存器。下面的指令中所有操作数都是寄存器寻址方式。MOVAL,BLMOVAL,DHMOVBP,SPMOVAX,SIMOVAX,CSMOVDS,DX【注意】指令指针IP、标志寄存器PSW以及所有标志位的代号CF、Z

4、F、OF等都不能作为寄存器寻址方式的操作数,不允许出现在汇编语言的任何指令中。另外,8088汇编语言还规定,不允许用MOV等具有赋值功能的指令修改CS的值,也就是说,类似于“MOVCS,AX”试图对CS赋值的指令在8088汇编语言中是不允许的。3.1.3内存型寻址方式内存型寻址方式是指参与操作的数据在内存中,因此必须指明操作数究竟在内存的什么地方,即指出内存的逻辑地址。逻辑地址的段地址部分来自某个段寄存器。每一个内存型操作数都有一个不需要在指令中写出的缺省段寄存器与之对应,如果就以这个缺省段寄存器的值作为段地址,则指令中只要确定偏移地址即可。但是,

5、有时指令中需要使用其它段寄存器而不用缺省段寄存器作为段地址,这时就要先写出需要使用的段寄存器的名字,后面加冒号“:”,再接偏移地址的各种写法。这种不用缺省段寄存器而明确写出段寄存器名称的方式称为“段跨越”。按照确定操作数偏移地址的不同方法,内存型寻址又细分为5种具体情况,分别称为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址和相对基址变址。3.1.3.1直接寻址这种寻址方式是在指令中直接写明操作数所在的偏移地址。在汇编语言中,这个偏移地址通常以变量的形式出现,在指令中就是直接写变量的名字。变量名字与偏移地址之间存在固定的对应关系,在源程序中写变

6、量的名字,汇编程序会把名字翻译成相应的偏移地址。确立这种对应关系的方法是定义变量。定义变量的具体写法在第5章中加以说明,在此需要说明的是,定义变量时会说明它的类型(字节、字或者双字),定义后的变量就有了一个确定的偏移地址,程序中还会有伪指令说明变量对应的缺省段寄存器是哪一个。也就是说,每个已定义的变量都有缺省段寄存器与之对应,都有固定的偏移地址和类型。设buf是已经定义的字节型变量,指令“MOVAL,[buf]”中源操作数寻址方式就是直接寻址。用方括号把变量名字括起来是直接寻址的基本写法。上述指令中的“[buf]”表示以变量buf对应的偏移地址和缺

7、省段寄存器中的值作为完整的逻辑地址,操作数在逻辑地址所确定的内存单元中。假定上述指令中变量buf的缺省段寄存器是DS,执行上述指令时DS的值是1234H,buf的偏移地址是0ABCDH,则物理地址的形成可用图3.1表示,图中数据均为十六进制。图3.1直接寻址方式下操作数的物理地址的形成直接寻址方式可以使用段跨越。下面是两个使用段跨越的例子:MOVAL,CS:[buf]MOVAL,ES:[buf]使用段跨越时物理地址的形成方式,只要在图3.1中把段寄存器DS换成段跨越符号所指明的段寄存器即可。MASMV5.0还支持不写方括号的直接寻址方式,前面的3个

8、例子可以写成如下形式:MOVAL,bufMOVAL,CS:bufMOVAL,ES:buf变量占据内存空间的大小是以字节为单

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。