社区
汇编语言
帖子详情
(x+y*(z-100)/300)/a 都是有符号数,都是16位数,要考虑进位 请问这个怎么做做?
崔鹏飞
2008-03-13 04:20:44
(x+y*(z-100)/300)/a 都是有符号数,都是16位数,要考虑进位 请问这个怎么做做?
...全文
98
10
打赏
收藏
(x+y*(z-100)/300)/a 都是有符号数,都是16位数,要考虑进位 请问这个怎么做做?
(x+y*(z-100)/300)/a 都是有符号数,都是16位数,要考虑进位 请问这个怎么做做?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
雨落风
2008-03-16
打赏
举报
回复
data segment
xxx dw 300
yyy dw 300
zzz dw 200
a dw 400
bbb dw 100
ccc dw 300
eee dd ?
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov ax,zzz
sub ax,bbb
imul yyy
sub dx,0
idiv ccc
mov cx,ax
sub dx,dx
add cx,xxx
adc dx,0
mov ax,cx
sub dx,0
idiv a
mov word ptr eee,ax
mov word ptr eee+2,dx
mov ah,4ch
int 21h
code ends
end start
雨落风
2008-03-16
打赏
举报
回复
上面的代码好像有溢出错误.....>!
zhaoyi2115
2008-03-14
打赏
举报
回复
MOV AX,Z
SBB AX,100; Z-100
MOV BX,Y
IMUL BX; Y*(Z-100),结果高位在 DX,低位在 AX 中
MOV BX,300;
IDIV BX;Y*(Z-100)/300 商在 AX ,余数在 DX
MOV BX,X;
CLC ;清除 CF
ADD AX,BX;可能有进位 CF
XOR DX,DX;清除 DX
ADC DX,0;加上进位,完成 X+Y*(Z-100)/300
MOV BX,a;
IDIV BX;完成整个运算,商在 AX ,余数在 DX
崔鹏飞
2008-03-14
打赏
举报
回复
不好意思,何谓tc?
BMCRNET
2008-03-13
打赏
举报
回复
楼上正解
:)
zhaoyi2115
2008-03-13
打赏
举报
回复
MOV AX,Y;
MOV BX,Z;
SBB BX,100; Z - 100
IMUL AX,BX; Y*(Z-100) RESULT:DX AX
MOV Bx,300;
IDIV BX; Y*(z-100)/300 余数在 DX 中,商在 AX 中
MOV DX,0
ADD AX,X; 可能有进位
ADC DX,0; 加上进位
MOV BX,a;
IDIV BX; 结果在 AX 中
zhaoyi2115
2008-03-13
打赏
举报
回复
MOV AX,Y;
MOV BX,Z;
SBB BX,100; Z - 100
IMUL AX,BX; Y*(Z-100) RESULT:DX AX
MOV Bx,300;
IDIV BX; Y*(z-100)/300 余数在 DX 中,商在 AX 中
MOV DX,0
ADD AX,X; 可能有进位
ADC DX,0; 加上进位
MOV BX,a;
IDIV BX; 结果在 AX 中
zhaoyi2115
2008-03-13
打赏
举报
回复
MOV AX,Y;
MOV BX,Z;
SBB BX,100; Z - 100
IMUL AX,BX; Y*(Z-100) RESULT:DX AX
MOV Bx,300;
IDIV BX; Y*(z-100)/300 余数在 DX 中,商在 AX 中
MOV DX,0
ADD AX,X; 可能有进位
ADC DX,0; 加上进位
MOV BX,a;
IDIV BX; 结果在 AX 中
zhaoyi2115
2008-03-13
打赏
举报
回复
MOV AX,Y;
MOV BX,Z;
SBB BX,100; Z - 100
IMUL AX,BX; Y*(Z-100) RESULT:DX AX
MOV Bx,300;
IDIV BX; Y*(z-100)/300 余数在 DX 中,商在 AX 中
MOV DX,0
ADD AX,X; 可能有进位
ADC DX,0; 加上进位
MOV BX,a;
IDIV BX; 结果在 AX 中
智能卡_Snooper
2008-03-13
打赏
举报
回复
用TC写一个,然后反汇编吧,那个简单一些。
相关推荐
机组第二章习题
x+y和x-y 上面是纯加法 下面是把减法用加法代替 注意:得到的都不一定是结果,可能还需要再转换 这里都是用双
符号
位来判断是否溢出 记得用双
符号
位来判断时双
符号
位也参与运算和
进位
x*y
符号
位单独
考虑
,进行异或运算 原码乘法后得到的是原码 补码乘法后得到的是补码 设阶码3位,尾
数
6位,用浮点运算方法,计算[x+y],[x-y] ...
不用加减乘除做加法
题:写一个函
数
,求两个整
数
之和,要求在函
数
体内不得使用+、-、×、÷四则运算
符号
。 思路:因为不能使用四则运算,对
数
字做运算,我们只能
考虑
位运算了。我们先不
考虑
进位
,对两
数
字进行异或运算,这样,就可以得到一个没有
进位
的和,因为若是
进位
,则两
数
对应位上的值肯定都是为1的,所以,我们可以通过两
数
求&运算,然后左移两位得到
进位
的情况。代码如下: 1 int Add(int num1,i...
剑指offer-65 两
数
之和
两
数
之和 描述:写一个函
数
,求两个整
数
之和,要求在函
数
体内不得使用+、-、*、/四则运算
符号
。 思路:不能用四则运算符,
考虑
使用位运算。加法需要处理的最重要的步骤就是
进位
。 在位运算中,异或(^)结果为1是表示两位不同,则是表示这两个
数
在这一位上一个是0一个是1,在进行“相加”时,不用
进位
。与(&)运算结果为1是表示两位都为1,则是表示这两个
数
在这同一位上都是1,需要
进位
,
进位
就是左...
计算机组成
进位
,《计算机组成与体系结构(原书第4版)》 —2.4.6
进位
和溢出...
2.4.6
进位
和溢出前面所提到的“返回零”的情况都是真正的溢出。CPU通常具有指示
进位
和溢出的标志。但是,溢出标志仅用于有
符号
数
,在无
符号
数
中没有意义,在无
符号
数
中使用
进位
标志。如果
进位
(表示最左边的位有
进位
)出现在无
符号
数
中,我们知道有溢出(新值太大而无法存储在给定的
位
数
中)了,但溢出位并没有置位。
进位
同样会发生在有
符号
数
中,然而,在有
符号
数
中出现的这种情况,对于溢出而言既不充分也不必要。我们...
微机原理与接口技术
原码:二进制
数
= 1 101 反码=原码的每一位(除
符号
位)都取反 = 1 010 补码=反码+1 = 1 011 补码的补码=原码 [x+y]补=[x]补+[y]补 [x-y]补=[x]补+[-y]补 补码运算的
符号
位
进位
丢失 ≠ 溢出 (若结果未超出-128~127) 双高位法判断是否溢出 最高位
进位
xor 次高位
进位
= 1 溢出 = 0 无溢出 0110 0110 1
100
定点
数
: 定点纯小
数
:
符号
位后面都是小
数
部分,定点纯整
数
:符
发帖
汇编语言
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
2.1w+
社区成员
4.1w+
社区内容
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-03-13 04:20
社区公告
暂无公告