- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈工程微机原理3.2选编
练习;答案;3.2 8086指令系统;*;3.2.1 数据传送指令;1.通用数据传送指令;1.通用数据传送指令;*;*;*;1.通用数据传送指令;1.通用数据传送指令;分析错误的指令;;几种不能传送的解决办法:
MOV AL,mem1 ;通过寄存器AL作桥梁
MOV mem2,AL ;用来解决存←存
MOV AX,DS ;通过AX解决
MOV ES,AX ;段寄←段寄
MOV AX,data ;通过AX解决
MOV DS,AX ;段寄←立即数;例:用MOV指令实现两内存字节单元内容的赋值[1000H]送[2000H]
MOV AL,[1000H]
MOV [2000H],AL
例:用MOV指令实现两内存字节单元内容的交换[2000H]互换[3000H]
MOV AL,[2000H]
MOV AH,[3000H]
MOV [2000H],AH
MOV [3000H],AL;(2)交换指令;(2)交换指令;*;例: 用 XCHG指令改进前面的数据块交换程序:[2000H]互换[3000H]
MOV AL , [2000H] ; (XCHG)
XCHG AL , [3000H] ;
MOV [2000H], AL ; (XCHG);堆栈是按“后进先出“原则定义在存储器中的用来存储数据的特殊的存储区域:
堆栈在存储器中的位置和大小由堆栈段段寄存器SS和堆栈指针SP的初始值确定
堆栈按“后进先出”方式工作,只有一个出入口;出入口称为栈顶
堆栈操作总是字操作;操作包括入栈和出栈; 堆栈段段基址存放在SS
SP的初值确定了所用堆栈区的大小
堆栈指针SP 始终指向堆栈的顶部(称为栈顶)
堆栈指针自动修正
入栈时:SP-2 SP
出栈时:SP+2 SP;*;*;*;*;*;例 将16位通用寄存器CX的内容压入堆栈,然后,弹出栈顶至CX中,已知:(SS)=0200H,(SP)=0008H,(CX)=12FAH,其示意图见下图:
;
注意:
* 堆栈操作必须以字为单位。
* 不影响标志位
* 不能用立即寻址方式 ? PUSH 1234H
* DST不能是CS ? POP CS
即:CS的值可以推入堆栈,但反过来不能从堆
栈中弹入一个值到CS。;例: 假设 (AX) = 2107 H , 执行 PUSH AX
;例: POP BX;PUSH指令在程序中常用来暂存某些数据,而POP指令又可以将这些数据恢复。
例: PUSH AX
PUSH BX
…
…
POP BX
POP AX
注意:恢复数据时寄存器的操作顺序(出栈和进栈顺序相反);(4)换码指令;(4)换码指令;;换码指令:XLAT 或 XLAT OPR
;(4)换码指令;
例:MOV BX, OFFSET TABLE ; (BX)=0040H,表首地址
MOV AL, 3
XLAT TABLE
指令执行后 (AL)=33H
注意:
* 不影响标志位
* 字节表格(长度不超过256)
首地址? (BX)
* 需转换代码 ? (AL);2.地址传送指令;(2)地址指针传送指令;
例:LDS SI, [10H]
例:LES DI, [BX]
;例:;例:;*;3.标志传送指令;3.标志传送指令;*;2)标志入栈出栈指令;; 执行的操作:(SP)-1←标志寄存器高8位
(SP)-2←标志寄存器低8位
(SP) ←(SP)-2
(4)从栈顶弹出标志寄存器指令POPF
执行的操作:标志寄存器低8位←(SP)
标志寄存器高8位←(SP)+1
(SP)←(SP)+2
PUSHF和POPF指令用于保护和恢复标志寄存器内容;4.输入输出指令;4.输入输出指令;举例;8086的端口有64K个,无需分段,设计有两种寻址方式
直接寻址:只用于寻址00H~0FFH前256个端口,操作数表示端口号
间接寻址:可用于寻址全部64K个端口,DX寄存器的值就是端口号
大于0FFH的端口只能采用间接寻址方式
CPU与外设进行数据交换时,读出或写入的数据存放的位置只能是:
AL(读取8位
文档评论(0)