首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

这个汇编程序错哪了?计算W=X+(Y-Z)

2012-03-22 
这个汇编程序哪里错了?计算WX+(Y-Z)。DATA SEGMENTX DD 12345678HY DD 23458593HZ DD 32847040HW DD ?DATA

这个汇编程序哪里错了?计算W=X+(Y-Z)。
DATA SEGMENT
 X DD 12345678H  
 Y DD 23458593H
 Z DD 32847040H
 W DD ?
DATA SEGMENT
CODE SEGMENT
 ASSUME CS:CODE,DS:DATA
START:
 MOV AX,DATA
 MOV DS,AX
 MOV AX,Y
 MOV DX,Y+2
 SUB AX,Z
 SBB DX,Z+2
  ADD AX,X
 ADC DX,X+2
  MOV W,AX
 MOV W+2,DX
 MOV AH,4CH
 INT 21H
CODE ENDS
 END START


[解决办法]

Assembly code
DATA SEGMENT X DD 12345678H   Y DD 23458593H Z DD 32847040H W DD ?;DATA SEGMENTDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,word ptr Y MOV DX,word ptr Y+2 SUB AX,word ptr Z SBB DX,word ptr Z+2 ADD AX,word ptr X ADC DX,word ptr X+2 MOV word ptr W, AX MOV word ptr W+2,DX MOV AH,4CH INT 21HCODE ENDS END START
[解决办法]
程序看起来没错,具体是什么问题?
[解决办法]
一.DATA没段结束伪指令(粗心大意).
二.变量在被定义成DWORD后用引用变量名的方式来进行非DWORD(传送)操作应加类型属性限定操作符进行限定.
[解决办法]
为什么要写的这么复杂哦,定义成DD类型的,可以用EAX,ECX,EDX,EBX来计算,就不需要赋值两次了

热点排行