- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 4.标志传送指令 共有四条: 1 读标志指令LAHF LAHF把标志寄存器低8位中的5个标志位传送到AH中的指定位,如下图所示: OF DF IF TF SF ZF AF PF CF AH LAHF指令的功能 FLAG * 2 设置标志指令SAHF SAHF的功能与LAHF的功能正好相反,用图来示意,只要将上图中5个箭头方向反一下即可。 OF DF IF TF SF ZF AF PF CF AH SAHF指令的功能 FLAG * 执行的操作:① (SP) SP -1;标志寄存器高8位入栈 ② (SP) SP -1;标志寄存器低8位入栈 4 从栈顶弹出标志寄存器指令POPF 执行的操作:①标志寄存器低8位←栈顶一个字节; (SP) (SP)+1 ②标志寄存器高8位←栈顶一个字节; (SP) SP +1 PUSHF和POPF指令用于保护和恢复标志寄存器内容。 3 把标志寄存器推入栈顶指令PUSHF * 例如: PUSH AX PUSH CX PUSHF ;保护标志寄存器内容 ;这段程序要用到AX,CX以及标志位 POPF ;恢复标志寄存器内容 POP CX POP AX . . . * 数据传送指令中,除SAHF和POPF这两条指令外,其余所有指令均不影响标志位。 * 例题 1. 指出下列指令源操作数类型和位数,如果是存储器操作数,写出寻址算法。 1 MOV AX , 1000H 2 XCHG AX , [BX+SI+0100H] 3 PUSH [BX] 4 POP BX 5 IN AX, 60H 6 OUT DX , AL 7 LDS BP , [DI+0200H] 8 XLAT (9) LEA BX, [1000H] * 2. 指出下列指令使用错误 (1) MOV DS , ES 2 PUSH AL 3 IN DX , AL 4 IN AL ,1000H 5 OUT DX , BL 6 MOV [BX] , [SI+0200H] 7 MOV CS, [DI] 8 LEA AL, [BX] 9 XCHG AX ,DS * 3 已知DS 5000H, SS 2000H,SP 1000H, BX 2378H, SI 0050H, BP 0FFCH,DX 80H,地址80H端口为16位I/O口,分析执行下列指令后结果. PUSH BX PUSH SI LEA DI , [BP] MOV [DI] , BX MOV [DI+2] ,SI MOV AX , SS: [DI] OUT DX , AX HLT SP ; DI ; DX ; I/O口 内容 ; 并图示出内存相关单元存储内容。 * 2.2.2 算术运算指令 涉及两种类型数据: 无符号数和有符号数。对加减法指令,无符号和有符号数可采用同一套指令,但应注意: 参加的操作数必须都是无符号数或都是有符号数。 需使用不同的标志位来检查无符号数和有符号数的运算结果是否溢出。 * CF标志可用来表示无符号数的溢出,OF标志可用来表示有符号数的溢出。 有符号数的溢出是一种出错状态,在运算过程中应当避免。而无符号数运算溢出不是出错状态。将CF值并入运算结果的高位,结果是正确的。 * 共有5条: 1 不带进位的加法指令ADD 格式: ADD acc,data ADD mem/reg,data ADD mem/reg1,mem/reg2 例:ADD AL,30H ADD AX,[BX+20H] ADD CX,SI ADD [DI],200H ADD指令对标志位(指状态标志)都有影响。 1.加法指令 * 例1 设AL 79H,BH 0B3H,求执行指令ADD AL,BH后, AL ? BH ? 各个标志位的值? 解: 79H 0111 1001B + B3H 1011 0011B 0010 1100B 1 所以,AL 0010 1100B 2CH, BH 0B3H SF 0, ZF 0, AF 0, PF 0, CF 1, OF 0。 * 2 带进位位的加法指令ADC ADC指令在形式上和功能上都有与ADD类似,只是相加时还要包括进位标志CF的内容,例如: ADC AL,68H ADC AX,CX ADC BX,[DI] * 例:有两个4字节的无符号数相加: 2C56F8AC+309E47BE ? 设被加数、加数分别存放在BUFFER1及BUFFER2开始的两个存储区内,结果放回BUFFER1存储区,如下页图所示。 因CPU只能进
原创力文档


文档评论(0)