汇编第3章1.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编第3章1

3.3 80x86的指令系统 OUT输出指令 短格式为: OUT DX,AL (字节) OUT DX,AX (字) OUT DX,EAX (双字) 执行操作: ((DX))←(AL) (字节) ((DX)+1,(DX))←(AX) (字) ((DX)+3,(DX)+2,(DX)+1,(DX))←(EAX) (双字) 3.3 80x86的指令系统 IN/OUT输入/输出指令 I/O端口与CPU之间的通信都由IN和OUT指令来完成。 IN完成从I/O到CPU的信息传送 OUT完成从CPU到I/O的信息传送 CPU只能用累加器(AL或AX或EAX)接收或发送信息 外部设备最多有65536个I/O端口,端口号为0000~FFFFH 前256个端口(0~FFH)可以直接在指令中指定,即长格式PORT,就是端口号。 长格式可以直接指定端口号。(只限前256个端口) 端口号≥256时,只能用短格式,必须先把端口号放到DX寄存器中(端口号从0~0FFFFH),然后再用IN或OUT指令来传送信息。 3.3 80x86的指令系统 IN/OUT输入/输出指令 必须注意:端口号或DX的内容均为地址,传送的是端口中的信息; 短格式时DX内容端口号本身,不需要由任何段寄存器来修改它的值。 IN和OUT提供了双字、字和字节三种使用方式,具体使用则根据端口宽度。 输入、输出指令不影响标志位。 3.3 80x86的指令系统 IN/OUT输入/输出指令 例3.36 IN AX,28H MOV DATA_WORD,AX 把端口28的内容经过AX传送到存储单元DATA_WORD中 例3.37 MOV DX,3FCH IN EAX,DX 从端口03FCH送一个双字到EAX寄存器。 例3.38 OUT 5,AL 从AL寄存器输出一个字节到端口5。 3.3 80x86的指令系统 XLAT 换码指令 格式为:XLAT OPR 或XLAT 执行的操作: 16位指令:(AL)←((BX)+(AL)) 32位指令:(AL)←((EBX)+(AL)) 把一种代码转换为另一种代码,XLAT就是为这种用途所设置的指令。 在使用这条指令之前,应先建立一个字节表格,表格的首地址提前存入BX或EBX寄存器,需要转换的代码应该是相对于表格首地址的位移量也提前存放在AL寄存器中,表格的内容则是所要换取的代码,该指令执行后就可在AL中得到转换后的代码。 3.3 80x86的指令系统 XLAT 换码指令 该指令可用XLAT或XLAT OPR两种格式的任一种; 使用XLAT OPR时,OPR为表格的首地址(一般为符号地址),但在这里的OPR只是为提高程序的可读性而设置的,指令执行时只使用预先已存入BX或EBX中的表格首地址,而并不用汇编格式中指定的值。 指令不影响标志位。 3.3 80x86的指令系统 XLAT 换码指令 例3.39 如(BX)=0040H,(AL)=0FH,(DS)=F000H 建立如下表格: 指令 XLAT 把 F0000+0040+0F=F004F 的内容送AL(相加时AL的内容应零扩展到16位或32位) 指令执行后(AL)=2CH,即指令把AL中的代码0FH转换为2CH。 AL寄存器只有8位,表格的长度不能超过256。 存储器 (BX) F0040 F004F 2 C (AX)=0F 3.3 80x86的指令系统 3、地址传送指令 LEA (load effective address) 有效地址送寄存器 LDS (load DS with pointer) 指针送寄存器和DS LES (load ES with pointer) 指针送寄存器和ES LFS (load FS with pointer) 指针送寄存器和FS LGS (load GS with pointer)

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档