我想用汇编语言反转一个数字。我正在使用MASM 我的内存错误。 到目前为止我尝试了什么:
DATA SEGMENT
NUM1 DW NUM1 DW 12321
ARRY DB 10 DUP (0)
MSG1 DB 10,13,’STORED STRING IN MEMORY IS : $’
MSG2 DB 10,13,’REVERSE STRING IS : $’
DATA ENDS
DISPLAY MACRO MSG
MOV AH,9
LEA DX,MSG
INT 21H
ENDM
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
DISPLAY MSG1
DISPLAY NUM1
LEA SI,NUM2
LEA DI,NUM1
ADD DI,5
MOV CX,6
REVERSE:
MOV AL,[DI]
MOV [SI],AL
INC SI
DEC DI
LOOP REVERSE
DISPLAY MSG2
DISPLAY STR2
MOV AH,4CH
INT 21H
CODE ENDS
END START
答案 0 :(得分:1)
NUM1 DW NUM1 DW 12321 ;This produces the error ARRY DB 10 DUP (0)
首先将这些定义更改为:
NUM1 DB '123456$' ;$ is needed for displaying it later
NUM2 DB '......$' ;$ is needed for displaying it later
DISPLAY MSG2 DISPLAY STR2 ; This label does not exist
接下来通过引用现有标签显示结果:
DISPLAY MSG2
DISPLAY NUM2