2016-03-01 46 views
0

我想用汇编语言反转数字。我正在使用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

什么是你的问题? – Pavlo

+0

作为对他人的礼貌,请编辑您的问题,如果你看到格式化被打破。另外,使用适当的英语而不是“文字说”。至于代码,评论你的程序,以便我们可以看到你想要的指示。指定输入和输出(包括实际和预期),包括确切的错误。学习使用调试器,以便您可以逐步执行代码并自己发现错误。 – Jester

+2

你的代码中的'NUM2'在哪里? 'STR2'在哪里? – JimmyB

回答

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