社区
汇编语言
帖子详情
(x+y*(z-100)/300)/a 都是有符号数,都是16位数,要考虑进位 请问这个怎么做做?
崔鹏飞
2008-03-13 04:20:44
(x+y*(z-100)/300)/a 都是有符号数,都是16位数,要考虑进位 请问这个怎么做做?
...全文
152
10
打赏
收藏
(x+y*(z-100)/300)/a 都是有符号数,都是16位数,要考虑进位 请问这个怎么做做?
(x+y*(z-100)/300)/a 都是有符号数,都是16位数,要考虑进位 请问这个怎么做做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
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 中
用户 昵称
2008-03-13
打赏
举报
回复
用TC写一个,然后反汇编吧,那个简单一些。
汇编语言——输入两个字
数
据(
16
位的
数
)X,Y,计算Z=X+Y,并把Z的结果显示出来
本文介绍在汇编语言中输入两个
16
位
数
据X、Y,执行Z=X+Y运算,并支持二进制(带/无
符号
)、八进制、十进制及十六进制的多进制输入与输出。重点涉及32位结果存储(DX:AX)、
符号
扩展指令CWD/CBW、多进制转换逻辑及高位
进位
处理,适用于x86实模式下的底层
数
值运算实践。
编写计算表达式(X-Y+25)/Z的值得程序,要求将其商和余
数
分别放在A、B单元中。(设X和Y是32位无
符号
数
,A、B和Z是
16
位无
符号
数
,不
考虑
溢出情况。)
本文介绍了一种汇编语言程序设计方法,用于计算两个32位无
符号
数
的差值加上25后,再除以一个
16
位无
符号
数
的商和余
数
。程序详细展示了如何在
数
据段定义变量,使用堆栈段开辟存储空间,以及在代码段中进行复杂的算术运算。
汇编语言——
16
位带
符号
数
的加减乘除
本文详解x86汇编中
16
位带
符号
数
的加减乘除运算实现,涵盖CBW/SBW类型扩展指令、IMUL/IDIV有
符号
乘除法指令,并通过两个典型表达式(v-(x*y+z-540))/x与(X+3*Y-45)/Z说明完整计算流程,强调寄存器使用、
符号
扩展及商余分离存储(如W存商、W+2存余)。
汇编语言实现简单固定的算
数
表达式运算功能
这是一个使用汇编语言实现的程序,其功能是对给定的
16
位带
符号
数
X、Y、Z、V进行计算表达式((Z+X*Y-328)-V)/Y,结果的商存入AX寄存器,余
数
存入DX寄存器。程序经过运行验证,结果正确,AX=93,DX=37。
【马蹄集】——
数
论专题:
进位
制
博客围绕
数
论专题的
进位
制展开,包含多道题目。如找出不在
数
组中的二进制字符串、进行 Excel 坐标系统转换、计算单条件和,以及对称三进制与十进制的相互转换等。详细介绍了各题的题目描述、格式、样例,还给出了题解思路和完整代码。
汇编语言
21,499
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章