汇编算数(v-(x*y+z-540))/x

来源:百度知道 编辑:UC知道 时间:2024/07/07 02:20:13
5 个 16 位带符号数分别记为x,y,z,v,w,试求 w=(v-(x*y+z-540))/x
设5个变量名设为XXX,YYY,ZZZ,VVV,WWW, 初始化为:540,1,-1,1080,0,
要求:
①根据已给出的程序段片段、数据段片段填写出完整的汇编语言源程序。
②可选用任何一种编辑程序在磁盘上建立一个源文件(扩展名为.ASM)。
③用宏汇编 程序 MASM 对源文件 进行汇编, 生成目标文 件(扩展 名 为.OBJ)。
④用连接程序 LINK 对目标文件进行连接,生成可执行程序.EXE 文件。
⑤用 DEBUG 调试程序对源程序进行动态调试。

大哥们!我是学八位机的!十六位我没用过!我认为程序应该有通用性,对有符号来说,应该先对乘数和被乘数的符号位进行逻辑运算!此结果是直接导致积的符号!如果讲究程序通用性,还应该把高八位和低八位分开运算,以防溢出时有误!
这是小弟初学鄙见,希望高手别保留多指教!谢谢!

不好意思,原来的代码确实有些小问题。
至于16位,32位等的问题,请其他几位看看实际数值,而且楼主已经明确说是16位运算,还需要考虑DX吗?
更正如下:

DSEG        SEGMENT 
        XXX DW 540 
        YYY DW 1 
        ZZZ DW -1 
        VVV DW 1080 
        WWW DW 0 
DSEG         ENDS 

CSEG        SEGMENT 
        ASSUME CS:CSEG,DS:DSEG 

START:  MOV AX,DSEG