Intel80868088CPU的指令系统

Intel80868088CPU的指令系统

ID:46943554

大小:419.00 KB

页数:47页

时间:2019-11-30

Intel80868088CPU的指令系统_第1页
Intel80868088CPU的指令系统_第2页
Intel80868088CPU的指令系统_第3页
Intel80868088CPU的指令系统_第4页
Intel80868088CPU的指令系统_第5页
资源描述:

《Intel80868088CPU的指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章8086/8088指令系统3.3指令系统可分成如下6类:(1)数据传送类(2)算术运算类(3)位运算类(4)控制类(5)I/O类(6)串操作类(7)转移类符号及其含义OPRD泛指各种类型的操作数mem存储器操作数acc累加器操作数dest目的操作数src源操作数disp8位或16位偏移量,可用符号地址表示DATA8位或16位立即数PORT输入/输出端口,可用数字或表达式表示()表示寄存器的内容或存储单元的内容[]表示偏移地址3.3.1数据传送指令数据传送指令又可分为如下四种:通用传送目标地址传送标志传送输入

2、输出1.通用传送指令(1)MOVdest,src;dest←src传送的是字节还是字取决于指令中涉及的寄存器是8位还是16位。具体来说可实现:①MOVmem/reg1,mem/reg2指令中两操作数中至少有一个为寄存器例:MOVCL,DLMOVAX,BXMOV[SI],CXMOVCL,[BX+5]②MOVreg,data;立即数送寄存器③MOVmem,data;立即数送存储单元④MOVacc,mem;存储单元送累加器⑤MOVmem,acc;累加器送存储单元⑥MOVsegreg,mem/reg;存储单元/寄存器送段

3、寄存器⑦MOVmem/reg,segreg;段寄存器送存储单元/寄存器MOV指令使用规则:1)IP不能作目的寄存器2)不允许mem←mem3)不允许reg←seg4)立即数不允许作为目的操作数5)不允许segreg←立即数6)源操作数与目的操作数类型要一致几个不能传送的解决办法:用AX作桥梁存储器←存储器:MOVAX,MEM1MOVMEM2,AX段寄存器←段寄存器:MOVAX,DSMOVES,AX段寄存器←立即数:MOVAX,DATAMOVDS,AX应用举例:将1000H开始的100个存储单元全部填充为ASCII

4、码2AH(*)。程序段如下:MOVDI,1000HMOVCX,64HMOVAL,2AHAGAIN:MOV[DI],ALINCDIDECCXJNZAGAINHLT上程序段存放在代码段中,設(CS)=109EH,则各条指令存放地址如下:CS:IP指令109E:0100MOVDI,1000H109E:0103MOVCX,64H109E:0106MOVAL,2AH109E:0108MOV[DI],AL109E:010AINCDI109E:010BDECCX109E:010CJNZ0108109E:010EHLT109E:

5、0110什么是堆栈?按“后进先出(LIFO)”方式工作的存储区域。堆栈以字为单位进行压入弹出操作。为什么要设置堆栈?为什么要按“后进先出”方式工作?参见下图(2)堆栈操作指令主程序IP继续执行主程序执行子程序转子程序压栈弹出返回主程序主程序IPIP(下)继续执行主程序转子程序1返回主程序IP’执行子程序2转子程序2返回子程序1IP’(下)执行子程序1继续执行子程序1(a)(b)子程序调用示意图(a)主程序调子程序;(b)子程序嵌套示意图压栈弹出IP(下)规定由SS指示堆栈段的段基址,堆栈指针SP始终指向堆栈的顶部

6、,SP的初值规定了所用堆栈区的大小。堆栈的最高地址叫栈底。SPSS堆栈段进栈方向退栈方向栈底栈顶①压栈指令PUSHsrc;src为16位操作数例:PUSHAX;将AX内容压栈执行操作:(SP)-1←高字节AH(SP)-2←低字节AL(SP)←(SP)-2注意:立即数不能进栈设(AX)=1020H,执行示意图低地址存储区(SS段)执行前(AX)=1020(SP)存储区(SS段)进栈方向执行后2010(AL)(AH)PUSHAX指令执行示意图(SP)-2(SP)高地址低地址高地址(SP)-1压栈指令的格式为:PUSH

7、regPUSHmem/regPUSHsegreg例如:PUSHAXPUSH[BX]PUSHDS注意进栈方向是高地址向低地址发展。②弹出指令POPdest例:POPBX;将栈顶内容弹至BX执行操作:(BL)←(SP)(BH)←(SP)+1(SP)←(SP)+2POPBX的执行示意图如下图所示低地址存储区(SS段)出栈方向执行前2010POPBX指令执行示意图(SP)存储区(SS段)执行后(BX)=1020(SP)(SP)+1(SP)+2BX2010高地址低地址高地址堆栈指令使用时应注意几点:①堆栈操作总是按字进行②

8、不能从栈顶弹出一个字给CS③堆栈指针为SS:SP,SP永远指向栈顶④SP自动进行增减量(-2,+2)格式:XCHGreg,mem/reg功能:交换两操作数的内容。要求:1.两操作数中必须有一个在寄存器中;2.操作数不能为段寄存器和立即数;3.源和目地操作数类型要一致。举例:XCHGAX,BXXCHG[2000],CL(3)交换指令XCHG(4)查表指令XLAT执行的操作:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。