- 1、本文档共163页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.减法指令 (1)SUB不带借位的减法指令 指令格式:SUB 目的,源 指令功能:目的-源→目的 (2)SBB带借位的减法指令 指令格式:SBB 目的,源 指令功能:目的-源-CF→目的 ★ ①源操作数:寄存器、存储器、立即数 目的操作数:寄存器、存储器; ②目的与源数据类型要一致; ③目的与源不能同时为存储器; SUB AL,18H;AL-18H→AL SUB [DI],AL;AL-[DS:DI]→DS:DI单元 SBB CL,BL ;CL-BL-CF→CL SUB AX,BL × SBB [2000H],BYTE PTR[SI] × ※减法指令影响标志位:CF,OF,PF,SF,ZF,AF (3)DEC增量指令 指令格式:DEC 目的 指令功能:目的-1→目的 注意:指令执行后影响AF,OF,PF,SF和ZF, 但不影响CF。 DEC AL 假设指令执行前AL=00H,则指令执行后CF不影响 例3-50 DEC BL ;BL-1→BL DEC AX;AX-1→AX DEC BYTE PTR[BX];内存字节内容减1 DEC WORD BYTE[BX] ;[DS:BX]字-1→[DS:BX]字 (4)NEG取负指令(求补指令) 指令格式:NEG 目的 指令功能:0-目的→目的 (实际作用:求一个负数的补码形式。我们前面讲过,一个负数的补码=反码+1,指令NEG的功能就相当于反码+1;) 例3-51 求-5的8位二进制数表示(即求其补码) 解:①按照补码定义求:补码=反码+1 先求反码,即求5的反码,而5=0000 0101B,所以5的反码=1111 1010B,所以-5的补码=1111 1010+1=1111 1011B,也就是说而把1111 1011B当成是一个8位有符号数,就代表-5。 ②利用NEG指令求-5的补码: MOV AL,5 NEG AL;指令执行后AL=1111 1011B 即就是-5的补码。 (5)CMP比较指令 指令格式:CMP 目的,源 指令功能:将目的操作数减去源操作数,但结果不送回到目的操作数中,仅将结果反映在标志位上,接着可用条件转移指令决定程序的流向。指令执行后,若ZF=1,表示两操作数相等;若ZF=0,表示比较的两操作数不相等,不相等分两种情况: ①两个无符号数的比较: 无符号数相减后,CF就是借位标志, 如果CF=0,表示无借位,即目的≥源; 如果CF=1,表示有借位,即目的源; ②两个有符号数的比较 有符号数最高位表示符号位,而符号标志总是和结果的最高位相同。 ⑴当两个同符号数比较时,(即OF=0为什么?),可以用SF来判断这两个数的大小。 若SF=0,表示目的≥源; OF SF=0 若SF=1,表示目的源; OF SF=1 下面看个例子来说明: 例如,比较+3和+5的大小,利用+3-(+5) 由于结果-2没有超过-128~+127的范围(8位)所以OF=0;再看指令执行后SF=1,所以目的源,即+3+5; 再如,比较-1和-2的大小,利用-1-(-2) 由于结果+1没有超过-128~+127的范围(8位)所以OF=0;再看指令执行后SF=0,所以目的源,即-1-2; 下面我们再看看两个不同符号的数的比较 例如比较+127和-50的大小,利用+127-(-50) 如果这时我们还根据SF=1,表示目的源;即+127 -50,显然是不正确的。为什么会出现这种情况呢,原因是+127-(-50)=+177,结果超出了-128~+127的范围(8位),产生了溢出错误,即这时OF=1。 ⑵当两个不同符号数比较时, 第一种情况:OF=0,这时, 若SF=0,表示目的≥源; OF SF=0 若SF=1,表示目的源; OF SF=1 第二种情况:OF=1,这时, 若SF=1,表示目的≥源; OF SF=0 若SF=0,表示目的源; OF SF=1 针对⑴、⑵两种情况,得到以下结论: 利用CMP指令来比较两个有符号数的大小时,若 ① OF SF=0,则表示目的≥源; ② OF SF=1,则表示目的源; (6)AAS减法的ASCII调整指令 指令格式:AAS 指令功能:在用SUB或SBB指令对两个非压缩十进制数或ASCII码表
文档评论(0)