鱼C论坛

 找回密码
 立即注册
查看: 3534|回复: 4

汇编语言检测点11.1求助!!!

[复制链接]
发表于 2011-6-10 23:23:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这个检测点很难理解,望高人解惑!
sub al,al    zf=1(为0)  pf=1(0为偶)  sf=0(不是负数)
mov al,1  同上不变,传送指令不影响flag寄存器
push ax  同上
pop bx 同上
add al,bl    /1+1=2  zf=0  pf=0  sf=0    // 2转化为二进制为10,而补全二进制位为00000010,所以这里是0
add al,10  / 2+10=12 zf=0 pf=1 sf=0 //sf同上
mul al  /12*12=144=10010000   zf=0 pf=1 sf=1(应该为1啊,为什么标准答案为0呢?????????????)
想了好久就是没想明白!!
是不是进位的问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-6-10 23:31:17 | 显示全部楼层
看了后面的视频,是否是 al容纳的只能是-127到128,mul al,的结果144,al容纳不下,然后前面的1就到ah中去了?
还是说超过了AL能容纳的数据,这个数对AL来说只能是正数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-10 23:39:19 | 显示全部楼层
本帖最后由 困惑灵魂 于 2011-6-11 00:12 编辑

sf  是符号位吧
CZSOPA
r??r??

Unsigned multiply. (注意这个!!无符号  )

r - 标志值取决于指令的结果
? - 标志的值是不确定的(可能是1或0)。

CF=OF=0 when high section of the result is zero.

上面说明
mul 指令 只对 cf  of  有确定作用
sf 是不确定的


你应该明白滴-MUL就是无符号乘法


评分

参与人数 1荣誉 +1 收起 理由
loop + 1 赞一个!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-6-11 00:01:30 | 显示全部楼层
本帖最后由 困惑灵魂 于 2011-6-11 00:02 编辑

MUL  
REG  memory

Unsigned multiply.

Algorithm:


when operand is a byte:
AX = AL * operand.

when operand is a word:
(DX AX) = AX * operand.

Example:

MOV AL, 200   ; AL = 0C8h
MOV BL, 4
MUL BL        ; AX = 0320h (800)
RET


C Z S O P A
r ? ? r ? ?
CF=OF=0 when high section of the result is zero.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-6-14 10:32:59 | 显示全部楼层
哦,这样啊!谢谢了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 02:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表