注册 登录
编程论坛 汇编论坛

静心又看指令 有几个问题请教 幼稚问题 勿笑

打死黑狗! 发布于 2013-01-02 17:59, 600 次点击
带进位加指令ADC
例题:
MOV  AX, 4652H   ;(AX)=4652H
ADD  AX,0F0F0H   ;(AX)=3742,CF=1//这里CF=1如何解释?我真的不知道CF是干什么的
MOV  DX, 0234H   ;(DX)=0234H
ADC  DX, 0F0F0H  ;(DX)=0F325,CF=0//这里CF=0了 又如何解释?CF 到底是干什么的啊
带借位减指令SBB
例题:
DATA    SEGMENT
SUB1    DW       4275H,3412H    ;
SUB2    DW       12A5H,2F65H
DSUB    DW       0   ,   0
DATA    ENDS
        MOV   AX, SUB1
        SUB   AX, SUB2
        MOV   DSUB, AX            ;两低位数字相减,结果送至DSUB//不理解这句话的意思  尤其是低位数字
        MOV   AX, SUB1+2
        SBB   AX, SUB2+2          ;两高位数字相减,并减去低位的借位CF//还是不理解高位数字的意思
        MOV   DSUB+2,AX

还有无符号和有符号乘法指令对OF和CF的影响 是什么意思呢
书中是这样写的:
MUL:该指令属于双操作数指令,隐含使用AL、AX作被乘数,指令中给出的源操作数是乘数。该指令对OF和CF的影响是:如果乘积的高位(AH或DX)为0,则OF=CF=0;否则OF=CF=1.(这是什么意思啊),OF和CF是用来干什么的啊
IMUL:该指令对OF和CF的影响是:若乘积的高位是低位的符号拓展(符号拓展是什么意思),则OF=CF=0;否则均为1.


作业还没写完 写作业去了  希望可以解决 明天就开学了  不希望留下尾巴 或许和幼稚 但希望各位赐教 骂我也是可以滴





5 回复
#2
zklhp2013-01-02 18:25
认真看符号位相关的内容应该就明白了罢
#3
打死黑狗!2013-01-02 19:04
回复 2楼 zklhp
好吧  继续往下看  但愿能理解  不过老大不能给点解释吗
#4
zklhp2013-01-02 21:06
以下是引用打死黑狗!在2013-1-2 19:04:51的发言:

好吧  继续往下看  但愿能理解  不过老大不能给点解释吗

标志位 用于指示某种状态 比如发生了一个寄存器清零 可能就改了相应的标志位

但这玩意挺麻烦 首先你得知道大概有哪些标志位 都是干啥的 然后 不同指令对标志位的影响不同 所以要知道 好在不同指令的行为不会特别不一样

总之 看书是最好的掌握方法 看书就明白了 不明白 就先把哪些指令影响什么标志位大概看看 实践中掌握。。。

其实我也记不住那么多标志位 也就是清零等几个知道 其他的 呵呵 用了再查呗 这个主要是跳转的时候用得多
#5
zklhp2013-01-02 21:07
另外 有问题大胆问 我们又不笑话你 不是伸手党就好
#6
青春无限2013-01-03 13:36
学习了
1