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

几个很简单的问题 ,本人初学汇编诸多不懂

cuqa 发布于 2012-12-05 23:30, 536 次点击
刚刚接触汇编语言很多不懂,求大侠救命
写指令,个变量均为16位有符号数
问题1.Z←(W-X)/(5*Y)*2  主要是书上写着有符号数乘法IMUL SRC 十六位源操作数时结果会放到DX,AX里,如果先做乘法后做除法,我想问的是做除法的时候怎么办,乘法的结果在DX,AX里,我该除哪一部分,

问题2.(这个问题我打眼一看很简单,但是做完后对答案居然错了不少)
已知(AX)=836BH,X=3000H执行CMP AX,X 问ZF,CF,OF,SF的值
836BH=1000 0011 0110 1011
3000H=0011 0000 0000 0000
我不理解结果为什么是ZCOS=0010,两者相减最高位明明有借位为什么CF是0,结果也没益处为什么OF是1
 
额,貌似我问的都是最基础的,刚接触汇编很头疼
1 回复
#2
有容就大2012-12-06 22:53
1. 16位的实现乘除 确实很麻烦 按理说IDIV指令 的除数最大是字AX 然后再扩充符号位到DX
    有除一个双字的IDIV指令吗? 这个就不清楚了。
2. //两者相减最高位明明有借位为什么CF是0,结果也没益处为什么OF是1//
    最高位那来的借位啊 ?
    一个负数减去一个正数 最后得到个正数 你觉得没溢出?
   
1