- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3-第3章-80X86微处理器指令系统
第3章 80X86微处理器指令系统主要内容寻址方式8086/8088指令系统32位处理器指令系统NUIST操作码操作数……操作数3.1 寻址方式处理的数据在什么地方 ?要处理的数据有多长 ?隐含于 机器指令内指令的一般格式:3.1 寻址方式操作码指计算机所要执行的操作,是一种助记符。操作数在指令执行操作的过程中所需要的数据。该字段可以是操作数本身,也可以是操作数地址或是地址的一部分,还可以是指向操作数地址的指针或其它有关操作数的信息。 如何寻找操作数就是寻址方式 立即寻址 操作数直接放在指令中,紧跟在操作码后,与操作码一起放在代码段 汇编指令机器码(低字节在前)用C语言描述MOV AX,10HB81000H(AX)=16MOV AL,28HB028H(AL)=40立即寻址MOV AX, 0010HB8H操作码AHAL10H10H00H操作数代码段00HMOV AL, 28HB0H操作码AL28H操作数28H立即寻址注意立即数只能作源操作数,不能作目标操作数。立即数应与目标操作数的长度一致立即数默认采用十进制,采用十六进制数以“H”为后缀,2进制数以“B”为后缀。以16进制形式出现的立即数,若以字母开头,需以数字0为前缀。立即数只能是整数,不能是小数或其他类型的数据。寄存器寻址 操作数包含在CPU的内部寄存器中,如寄存器AX、BX、CX、DX等。寄存器可以是8位或者16位。汇编指令机器码(低字节在前)用C语言描述指令执行前数据的位置 MOV AX,BXB9D8H(AX)=(BX)CPU内寄存器BXMOV AL,BL88DBH(AL)=(BL)CPU内寄存器BL寄存器寻址B9H操作码D8HMOV AX, BX代码段AXBX1234H1234H寄存器寻址注意源操作数的长度必须与目的操作数一致。16位操作数:AX, BX, CX, DX, DI, SI, SP和BP等8位操作数:AH, AL, BH, BL, CH, CL, DH和DL两个操作数不能同时为段寄存器目标操作数不能为CS直接寻址 操作数在内存中,指令中以具体数值的形式给出操作数所在单元的有效地址EA。逻辑地址为段地址(SA):偏移地址(EA)。 汇编指令机器码(低字节在前)指令执行前数据的位置 MOV AX,[2]A10200H 内存的DS:2~ 3单元 MOV AL,[2]A00200H 内存的DS:2单元MOV BX,ES:[2]8B1E0200H 内存的ES:2~ 3单元直接寻址10000H代码段2000DSA0HMOV AL, [0002H]左移4位(?16)操作码02H地址低位20000H偏移量00H地址高位+ 0002H20002H20000H12数据段3420001H20002H5620003H78AL56H直接寻址10000H代码段2000DSA1HMOV AX, [0002H]左移4位操作码02H地址低位20000H偏移量00H地址高位+ 0002H20002H20000H12数据段3420001H20002H5620003H78AHAL78H56H寄存器间接寻址操作数在内存中,操作数地址的16位EA包含在以下寄存器SI、DI、BP、BX中。为了区别于寄存器寻址方式,指令中指定的寄存器名要用“[]”括起来。分成两种情况:以SI、DI、BX间接寻址,则通常操作数在现行数据段区域中,此时(DS)×16+[REG] 为操作数的地址,REG表示寄存器可以是SI、DI、BX。以寄存器BP间接寻址,操作数在堆栈段中。即(SS)×16+(BP)作为操作数的地址。寄存器间接寻址DS10000H代码段2000SIMOV SI, 1000HB8H左移4位操作码1000MOV AX, [SI]04H20000H+ 1000H21000H21000H12数据段3421001HAHAL21002H5634H12H21003H78寄存器相对寻址操作数在内存中,由指定的寄存器内容,加上指令中给出的8位或16位偏移量作为操作数的偏移地址。寄存器为四个寄存器SI、DI、BX、BP之一 寻址方式含义[BX+idata]/idata[BX]EA=(BX)+idata,SA=(DS)[SI+idata]/idata[SI]EA=(SI)+idata,SA=(DS)[DI+idata]/idata[DI]EA=(DI)+idata,SA=(DS)[BP+idata]/idata[BP]EA=(BP)+idata,SA=(SS)寄存器相对寻址DS10000H代码段2000BXMOV BX, 1000HB8H左移4位操作码1000MOV AX, [BX+1]47H20000H1000H01+ 0001H21001H21000H12数据段3421001H21002H56AHAL2100
文档评论(0)