- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例如,下面是某个程序的数据段: DATA SEGMENT ;数据段开始 AREA1 DB 14H,3BH AREA2 DB 3 DUP(0) ARRAY DW 3100H,01A6H STRING DB ‘GOOD’ DATA ENDS ;数据段结束 DATA SEGMENT AREA1 DB 14H,3BH AREA2 DB 3 DUP(0) ARRAY DW 3100H,01A6H STRING DB ‘GOOD’ DATA ENDS 图3-13 数据段占用存储空间的情况 (2)PUSH进栈指令 指令格式:PUSH 源 指令功能:将源操作数压入堆栈。 ★源操作数可以是16位通用寄存器、段寄存器或存储器中的数据字,但不能是立即数。 操作过程:先修改SP指针(SP-2→SP),然后把源操作数压入到SP指向的位置,(低位字节→[SP] 高位字节→[SP+1]) 1000H 1002H 旧SP 新SP 例如 PUSH AX (假设,执行前AX=1234H, SP=1002H) 则执行后,堆栈内容如何变化? 12 34 (3)POP出栈指令 指令格式:POP 目的 指令功能:将当前SP和SP+1所指向的单元内容→目的操作数。 ★操作数可以是16位通用寄存器、段寄存器或存储器中的数据字,但CS不能作为目的操作数。 操作过程:先将[SP+1],[SP]中的内容送到目的操作数,( [SP] →目的低位字节 [SP+1] →目的高位字节 ) 然后再修改SP指针(SP+2→SP)。 例3-29 假如当前SS=C000H,SP=1000H,AX=1234H BX=5678H,CX=ABCDH,则执行指令PUSH AX, PUSH BX,POP CX后,堆栈中的内容发生什么变 化,AX,BX,CX中的内容又是多少?画图说明。 (1)指令执行之前 SS×16+SP (2)执行PUSH AX之后 SP先减2 指向此处 (3)执行PUSH BX之后 SP 再减2指向此处 (4)执行POP CX之后 先弹数据,再将SP加2 前SP (4)XCHG交换指令 指令格式:XCHG 目的, 源 指令功能:把一个字或字节的源操作数和目的操作数相交换。 几点说明: ①段寄存器、IP,立即数不能作为操作数 XCHG AX,DS × XCHG AX,1000H × XCHG BX,IP × ②两个存储单元之间不能直接交换数据 XCHG [BX],[1000H] × XCHG [DI],[BP] × ③目的和源操作数的长度必须一致 XCHG BX,AL × XCHG DL,CX × 2.输入输出指令 用来完成I/O端口与累加器之间的数据传送,指令中要给出I/O端口的地址。 (1)IN输入指令 指令格式: ①IN AL,端口地址; IN AX,端口地址 ②IN AL,DX; IN AX,DX; 指令功能:从8位端口读一个字节→AL,或从16位端口读一个字→AX。 IN AL,50H; 从50H端口读一个字节→AL IN AX,30H;从连续的两个8位端口30H, 31H(即组成一个16位端口) 读一个字到AX中,其中30H 端口中的字节内容→AL; 31H端口中的字节内容→AH。 MOV DX,1000H IN AL,DX;从1000H端口读一个字节→AL (2)OUT输出指令 指令格式: ①OUT 端口地址,AL;OUT 端口地址,AX ②OUT DX,AL; OUT DX ,AX; 例如: OUT 20H,AL;将AL 的字节→ 20H端口 OUT 30H,AX;将AX中字内容送到连续的两 个8位端口30H,31H(即组成 一个16位端口) 其中AL→30H;AH →31H MOV DX,1000H OUT DX,AL;将AL→1000H端口 3.地址目标传送指令 —用来传送操作数的段地址和偏移地址 (1)LEA取有效地址指令 指令
文档评论(0)