|
发表于 2011-9-18 16:18:10
|
显示全部楼层
本帖最后由 ytrfamli 于 2011-9-18 17:40 编辑
喔,原来你是在debug中直接输入指令,在debug中输入指令的时候,像是add al,10
机器是解释成add al,10h的,如果你要在debug中输入10进制的10你要用A,
也就是 add al,0A
关於CY,看起来好像是针对mul提供的乘数大小而定(被乘数一律在al或是dx,ax中)
如果结果的位數比乘數大,例如提供了8bit乘数,但結果超過8bit,那麽就会有CY,
以下为实机测试的具体证明
(想在debug中直接测试记得是mov al, 10,如果写mov al,16那麽读进al的其实是10进制22)
mov al,1
mov bl,16
mul bl
16*1=16,16进制是10h,依然是8bit,CY=0
mov al,16
mov bl,16
mul bl
16*16=256,在16进制是写作100h,超过了原本的8bit,CY=1
mov al,16
mov bl,16
mul bx
bx原本就是16bit,100h没有超过16bit,CY=0
关於OV嘛...纠结中.有請潛水中的高手們跟帖发表一下高见吧.
|
|