微原 第四章2.pptVIP

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

4.2 8086/8088 指令系统 出栈指令(POP) 格式:POP DST 功能:(1)DST (SS:(SP)) (2)SP (SP)+2 4.2 8086/8088 指令系统 例如: POP BX ;(1) BX (SS:(SP)) ;(2) SP (SP)+2 POPF ;(1) FLAG (SS:(SP)) ;(2) SP (SP)+2 4.2 8086/8088 指令系统 在程序设计时,PUSH、POP必须 配对使用,以保证SP指针不被破坏。 这样才能保证在程序执行期间,堆栈 不会发生溢出。 PUSH AX PUSH DS PUSH [SI] 4.2 8086/8088 指令系统 例1: 若(SS)=2000H ,(SP)=0100H (AX)=1122H ,(BX)=3344H ,(CX)=5566H 则CPU执行以下指令: PUSH AX PUSH BX PUSH CX ;此时,栈顶单元的PA= 4.2 8086/8088 指令系统 例1: 若(SS)=2000H ,(SP)=0100H (AX)=1122H ,(BX)=3344H ,(CX)=5566H 则CPU执行以下指令后, POP AX ;(AX)= POP CX ;(CX)= POP BX ;(BX)= ;此时,(SP)= 4.2 8086/8088 指令系统 例2:若CPU执行 PUSH AX PUSH BX PUSH CX 指令组后,试将压入堆栈的(AX) DX (用MOV指令实现)。 4.2 8086/8088 指令系统 SS:SP MOV BP , SP MOV DX , [BP]+04H CL CH BL BH AL AH +1 +2 +3 +4 BP 例3:下列指令书写格式语法是错的。 PUSH AL 〤 堆栈只能按字操作 PUSH 5678H 〤不能为立即数寻址 POP CS 〤 CS不能作DST 4.2 8086/8088 指令系统 将常数压入堆栈: MOV AX,OFFFFH PUSH AX 算术类指令除了要遵循前面讲的语法规则外,还要注意: 4.2 8086/8088 指令系统 二.算术运算类指令 ● 只要ALU涉及到运算,就不能使用 段REG; ● 只要ALU涉及到运算,其运算结果 就影响6个状态标志。 4.2 8086/8088 指令系统 1.加法与减法指令 (DST) 0-(DST) NEG DST (DST) (DST)-(SRC)-CF SBB DST,SRC (DST) (DST)-(SRC) SUB DST,SRC (DST) (SRC)+(DST)+CF ADC DST,SRC (DST) (SRC)+(DST) ADD DST,SRC 功能说明 助记符格式 SRC—立即数、通用寄存器、内存单元 DST—通用寄存器、内存单元,不允许为立即数 当SRC不是立即数时,两上操作数中必须有一个是寄存器 说明: 1、带进位加减运算时,CF值是由该指令前的指令产生的。 2、算术运算指令结果对源操作数无影响。 4.2 8086/8088 指令系统 1.加法与减法指令 ADD AL,BL ADD AX,[SI] ADC AX,0 SUB AL,BL SUB [BX],DX SBB CX,DATA1 ;(AL)←(AL)+(BL) ;(AX)←(AX)+((SI)) ;(AX)←(AX)+0+CF ;(AL)←(AL)-(BL) ;((BX))←((BX))-(DX) ;(CX)←(CX)-(DATA1)-CF 4.2 8086/8088 指令系统 1)ADD AX,[SI] 功能:(AX)←(AX)+((SI)),设置标志寄存器FLAG的各位。 例:(SI)=0100H (AX)=004AH (DS:0100H) (DS:0101H) 执行后的结果:(AX)=0000 0010 0101 0110B FLAG: 0 ● ● ● 0

文档评论(0)

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

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

1亿VIP精品文档

相关文档