- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
立即寻址:是直接把参与操作的数据写在指令中,以8位或16位二进制补码表示的有符号数紧跟在操作指令的代码后面。例:MOVAL,30该指令中的30就是立即数。该指令将十进制形式的立即数30立即数送AL寄存器。该指令的二进制的机器指令是:1011000000011110。在该机器指令的最后8位就是十进制30的二进制数。立即寻址还有一些比较复杂的情况。如果操作数是由数值和运算符构成的表达式,汇编程序在翻译时会计算出表达式的值,并把计算结果以立即数形式翻译到机器指令中。例如:MOVAL,100-30该指令中的源操作数是一个可直接计算的表达式,汇编程序在翻译这条汇编指令时会计算出表达式的值是70,然后以70作为立即寻址方式的源操作数。3.2寄存器型寻址方式寄存器寻址方式:存取数据到寄存器,则必须要知道该数据存放在哪个寄存器。确定寄存器的方式称为寄存器寻址方式。例:MOVAL,30该指令就是将30存到寄存器AL中。该指令的二进制的机器指令是:1011000000011110。该指令的机器指令格式是1011wrrr,对比看rrr=000,即8位通用寄存器AL的机器码。这种寻址方式比较简单,就是在指令的操作数部分写寄存器的名称。可用的名称有:8位的通用寄存器——AH、AL、BH、BL、CH、CL、DH、DL;16位的通用寄存器——AX、BX、CX、DX、SI、DI、BP、SP;16位的段寄存器——CS、DS、SS、ES;【注意】指令指针IP、标志寄存器PSW以及所有标志位的代号CF、ZF、OF等都不能作为寄存器寻址方式的操作数,不允许出现在汇编语言的任何指令中。另外,汇编语言还规定,不允许用MOV等具有赋值功能的指令修改CS的值,也就是说,类似于“MOVCS,30”试图对CS赋值的指令在汇编语言中是不允许的。3.3内存型寻址方式内存是存放数据的主要部件,内存以字节为最小的存取单位,内存的标识是内存地址,所以存取内存的数据首先就是要确定数据存放在内存的哪个内存字节中,即确定内存地址,确定内存地址的方式称为内存寻址方式。存型寻址又细分为5种具体情况,分别称为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址和相对基址变址。段寄存器的确定有两种情况,即缺省段寄存器和非缺省段寄存器。操作数的偏移地址在指令中直接写明,在程序执行时,在取得指令时就可得到操作数在内存逻辑地址的偏移地址,直接用这个偏移地址与段寄存器的内容进行地址加法,即可获得操作数在内存的物理地址,此时才能获得操作数。我们把以这种得到偏移地址的方式称为直接寻址方式。在汇编语言中,这个偏移地址通常以变量的形式出现,在指令中就是直接写变量的名字。设buf是已经定义的字节型变量,指令“MOVAL,[buf]”中源操作数寻址方式就是直接寻址。用方括号把变量名字括起来是直接寻址的基本写法。上述指令中的“[buf]”表示以变量buf对应的偏移地址和缺省段寄存器中的值作为完整的逻辑地址,操作数在逻辑地址所确定的内存单元中。假定上述指令中变量buf的缺省段寄存器是DS,执行上述指令时DS的值是1234H,buf的偏移地址是123H,该指令的二进制机器指令是10001010000001100010001100000001(十六进制8A062301H汇编源程序中直接寻址一般形式是“[变量±数值]”的写法,汇编程序在翻译汇编源程序先找出变量名所对应的偏移地址,再与另一个数值相加减,计算结果作为操作数的偏移地址,以直接寻址方式翻译到机器指令中。这个结果在汇编程序翻译源程序时就能直接得到。操作数的偏移地址存放在寄存器,在指令中写明从存放偏移地址的寄存器即可。因此在汇编程序翻译汇编源程序就不能直接得到偏移地址了,而必须在程序执行时从该寄存器中取得偏移地址。此时寄存器中存放的数据不是操作数,而是操作数在内存中逻辑地址的偏移地址,因此从该寄存器中取得的数据是偏移地址,再和段寄存器内容进行地址加法运算才能得到操作数在内存的物理地址,此时才能获得操作数。我们把以这种得到偏移地址的方式称为寄存器间址寻址方式。操作数的寄存器间址寻址方式的写法是以该寄存器的名字加上方括号(以区别寄存器型寻址方式)。这表示寄存器的内容作为偏移地址,而不是参与操作的数据本身,操作数需要到内存中去找。注意与寄存器寻址方式相区分。MOVAL,[BX]MOVAL,[SI]MOVAL,[BP]假定指令MOVAL,[BX]中寄存器BX中存放的数据是123H,BX对应的缺省段寄存器是DS,执行
您可能关注的文档
最近下载
- 2024-2025学年高中思想政治必修1 中国特色社会主义统编版(部编版)教学设计合集.docx
- 员工培训---病理.ppt
- 2025年上海市数学高考一轮复习精讲精练 第10讲空间向量与立体几何(11类核心考点精讲精练)含详解.docx
- 养老院活动记录表(新版).doc VIP
- 二年级上学期数学基础知识《填空题》专项练习及一套完整答案.docx
- 建设工程质量资料管理.ppt VIP
- 酒店智能弱电系统工程设计模板.doc VIP
- 烟草种植气象服务规范.pdf VIP
- 2023上海高三二模优秀作文汇编.doc
- 第5 2课《学习工匠事迹,领略工匠风采》(课件)-【中职专用】高二语文同步精品课件(高教版2023·职业模块).pptx VIP
文档评论(0)