汇编语言11.ppt
《汇编语言11.ppt》由会员分享,可在线阅读,更多相关《汇编语言11.ppt(29页珍藏版)》请在三一文库上搜索。
1、第11章 标志寄存器(flag),通用寄存器:ax,bx,cx,dx 变址寄存器si,di;指针寄存器 bp,sp 指令指针寄存器:ip 段寄存器:cs,ss,ds,es 标志寄存器:flag 用于存储相关指令的某些执行结果; 用来为CPU执行相关指令提供行为依据; 用来控制CPU的相关工作方式.,8086CPU的flag寄存器的结构: 按位记录相关特定信息的16位寄存器 CF 进位标志位 PF 奇偶标志位 AF 辅助进位标志位 ZF 零标志位 SF 符号标志位 TF 陷阱标志位 IF 中断标志位 DF 方向标志位 OF 溢出标志位,一、ZF标志 标识算术或比较运算的结果是否为0 ZF=1 表
2、示结果为0 ZF=0 表示结果不为0 例:下列指令执行后ZF=1 mov ax,1 mov ax,1 sub ax,1 and ax,0 下列指令执行后ZF=0 mov ax,2 mov ax,1 sub ax,1 or ax,0,二、PF标志 标识运算结果的低8位中“1”的奇/偶数 PF=1 结果中1的个数为偶数 PF=0 结果中1的个数为奇数 例:下列指令执行后PF=1 mov al , 1 or al , 2 下列指令执行后PF=0 mov al , 1 add al , 10,PF标志仅反映最低8位中“1”的个数是偶或 奇,即使是进行16位字操作,三、SF标志 标识算术运算结果的正负。
3、对无符号数无意义。 SF=1 结果为负数 SF=0 结果为非负数 计算机中的一个数据可以看作是有符号数,也可以看作为无符号数,对有符号数在计算机中用补码来表示。按照无符号数求得结果,并相应设置符号标志SF,是否需要该标志位,关键在于我们的程序中进行的是哪一种运算。 例: mov al , 10000001b add al , 1,四、CF标志 标识无符号数运算时,运算结果的最高位所产生的进 位或借位(低8位向高8位;或低16位向高16位) CF=1 结果中有进位或借位 CF=0 结果中无进位或借位 例: mov al , 98h mov al , 97h add al , al sub al
4、, 98h,五、OF标志 标识有符号数算术运算时,是否发生溢出 OF=1 结果发生溢出 OF=0 结果未溢出 在进行有符号数运算时,如结果超过了机器所能表示的范围称为溢出。8位有符号数的表示范围为-128+127;16位有符号数的表示范围为-32768+32767。,溢出的判断,判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确 其他情况下,则不会产生溢出,六、DF 标志 在比较或移动字符串数据时,指示其地址操作方 向为增值或减值 DF=0 每次操作后,si、di递增; DF=1
5、每次操作后,si、di递减,cld 指令:将标志位DF置0 std指令:将标志位DF置1,标志位符号及说明,十二、标志寄存器在debug中的表示,1,C,p,0,PF奇偶标志位。当结果的低8位中1的个数为偶数时,则该标志位置1;否则清0。,CF 进位标志位。当加、减运算时最高位出现借位,该标志位置1;否则为0,A,ZF零标志位。当运算结果为0时该标志位为1,否则为0。,Z,0,SF符号标志位。当运算结果最高位为1时该标志位为1,否则为0。,S,0,T,0/1,I,0/1,D,0/1,OF溢出标志位。对有符号数,当运算结果超出表达范围时OF=1,对无符号数不考虑此标志。,O,0,七、带进位加法指
6、令adc和带借位减法指令sbb 格式:adc op1,op2 功能:op1+op2+CF送op1 格式: sbb op1,op2 功能:op1-op2-CF送op1 说明:与add和sub相类似,只不过还要加或减去CF的当前值,主要用于多字节(多于16位)的加减运算。,例: 计算45678998H+56789012H,并将结果保存到0010。 MOV AX,8998H ADD AX,9012H MOV 0010H,AX MOV AX,4567H ADC AX,5678H MOV 0012H,AX,E0,9B,9BE019AA,AX=19AA CF=1,Ax=9BDF+1 =9BE0,在多位的加
7、减运算中,先算低16位;后进行高16位的带进位运算。,例:编程计算1EF0001000H+2010001EF0H,结果放在ax(最高16位),bx(次高16位),cx(低16位)中。 mov ax,001eh mov bx,0f000h mov cx,1000h add cx,1ef0h ;低16位相加 adc bx,1000h ;中16位带位相加 adc ax,0020h ;高16位带位相加,例:编写子程序add128,对两个128位数据进行相加。 参数:ds:si指向存储第一个数的内存空间;ds:di指向存储第二个数的内存空间;运算结果存储在第一个数的存储空间中。,注意:inc 和 loo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 11
链接地址:https://www.31doc.com/p-2909482.html