汇编网首页登录博客注册
unixandlinux的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
友情链接

[2023-07-27 08:09] 第11章 检测点 11.1

检测点 11.1

写出下面每条指令执行后,ZF、PF、SF 等标志位的值。
sub al,al  ZF=1 PF=1 SF=0
结果为 00000000B,因此 ZF=1(零标志为真),PF=1(含 0 个 1,即偶数个 1,奇偶标志为真),SF=0(结果为非负数,负数标志为假)。
mov al,1  ZF=1 PF=1 SF=0
mov 指令为传送指令,不影响标志寄存器的值,因此标志寄存器保持原来的数据不变。
因此,虽然结果为 00000001B,但仍然是 ZF=1(零标志为真),PF=1(含 0 个 1,即偶数个 1,奇偶标志为真),SF=0(结果为非负数,负数标志为假)。
push ax  ZF=1 PF=1 SF=0
push 指令为传送指令,不影响标志寄存器的值,因此标志寄存器保持原来的数据不变。
因此,虽然结果为 ss:[sp]=(ax),但仍然是 ZF=1(零标志为真),PF=1(含 0 个 1,即偶数个 1,奇偶标志为真),SF=0(结果为非负数,负数标志为假)。
pop bx  ZF=1 PF=1 SF=0
pop 指令为传送指令,不影响标志寄存器的值,因此标志寄存器保持原来的数据不变。
因此,虽然结果为 (bx)=(ax),但仍然是 ZF=1(零标志为真),PF=1(含 0 个 1,即偶数个 1,奇偶标志为真),SF=0(结果为非负数,负数标志为假)。
add al,bl  ZF=0 PF=0 SF=0
(bx)=(ax),所以 add al,bl 的结果为 (al)=0010B,因此结果为“非零”、“奇数个 1”、“非负数”,即标志位 ZF=0,PF=0,SF=0(三个标志位均为“假”)。
add al,10  ZF=0 PF=1 SF=0
计算的结果为 (al)=12(1100B),因此结果为“非零”、“偶数个 1”、“非负数”。
mul al  ZF=0 PF=1 SF=0
计算结果为 (ax)=144(10010000B),因此结果为“非零”、“偶数个 1”、“非负数”。
评论次数(0)  |  浏览次数(143)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码