标题:几个很简单的问题 ,本人初学汇编诸多不懂
只看楼主
cuqa
Rank: 2
等 级:论坛游民
帖 子:21
专家分:26
注 册:2012-10-10
结帖率:100%
已结贴  问题点数:20 回复次数:1 
几个很简单的问题 ,本人初学汇编诸多不懂
刚刚接触汇编语言很多不懂,求大侠救命
写指令,个变量均为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
 
额,貌似我问的都是最基础的,刚接触汇编很头疼
搜索更多相关主题的帖子: 居然 
2012-12-05 23:30
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:14 
1. 16位的实现乘除 确实很麻烦 按理说IDIV指令 的除数最大是字AX 然后再扩充符号位到DX
    有除一个双字的IDIV指令吗? 这个就不清楚了。
2. //两者相减最高位明明有借位为什么CF是0,结果也没益处为什么OF是1//
    最高位那来的借位啊 ?
    一个负数减去一个正数 最后得到个正数 你觉得没溢出?
   

梅尚程荀
马谭杨奚







                                                       
2012-12-06 22:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-389806-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017001 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved