چند عدد كه داخل خود كد هست در داخل برنامه برعكس مي شود .حالا رشته عكس شده مي خواهم در صفحه؛ نمايش داده شود
1 - اینکه کد شما ایراد داره.
2- اینکه داخل داده هایتان رشته ای وجود ندارد که چاپ شود بلکه اعداد باید به رشته تبدیل و سپس چاپ شود.
3 - پیچیده نیست فقط وقت لازم داشت.
; This Macro Chenge HEX Or Binary To Decimal .........................
; NUMBER Is (WORD) .................................................. ..
; BUFFER is address of buffer
; digit is len of buffer or digit numbers
; RETURN : This Macro Return In buffer Decimal Number That It
; Has In His End 0
DECIMAL MACRO NUMBER, BUFFER, DIGIT
LOCAL E0, E1, LOOP__, EXIT_
MOV BX, DIGIT
MOV BYTE PTR BUFFER[BX], 0
MOV CX, BX
LOOP__:;----------------------------------;
DEC BX ;
MOV BYTE PTR BUFFER[BX], 32 ; clear the buffer
LOOP LOOP__;------------------------;
MOV BX, DIGIT
MOV AX, NUMBER
E0:
MOV DX, 0
MOV CX, 10
DIV CX
DEC BX
MOV BYTE PTR BUFFER[BX], DL ; BAGIMANDEH IN DX
ADD BYTE PTR BUFFER[BX], 30H
CMP BX, 0
JE EXIT_
CMP AX, 10
JNL E0
E1:
DEC BX
MOV BYTE PTR BUFFER[BX], AL
ADD BYTE PTR BUFFER[BX], 30H
EXIT_:
ENDM
;---------------------------------------------
stacksg segment para stack 'stack'
stacksg ends
datasg segment para 'data'
LIST_1 DB 10 DUP(?)
LIST_2 DB 10,9,8,7,6,5,4,3,2,1
TMP_BUFF db 20 dup('$')
NUM dw ?
datasg ends
codes segment para 'code'
main proc far
assume ss:stacksg, ds:datasg, cs:codes
mov ax, datasg
mov ds, ax
;------------ ur programm
; این قسمت داده هیا شما را برعکس میکند
LEA SI,LIST_2
LEA DI,LIST_1
ADD SI , 9
MOV CX,10
LOOP1:
MOV AL,[SI]
MOV [DI],AL
DEC SI
INC DI
LOOP LOOP1
;---PRINT DATA---------------------------
;این قسمت داده های برعکس شده را به عدد با فرمت رشته تبدیل و چاپ میکند
LEA DI,LIST_1
MOV CX,10
LOOP2:
PUSH CX
PUSH DI
MOV NUM, 0
MOV AL, BYTE PTR [DI]
MOV BYTE PTR NUM, AL
DECIMAL NUM, TMP_BUFF, 5 ; ماکرویی که عدد را به رشته تبدیل میکند
MOV BYTE PTR TMP_BUFF [5], '$' ; آخر رشته را به دلار ختم میکند تا چاپ شود
; اینجا داده های شما به چاپ می رود
MOV AH, 9
LEA DX, TMP_BUFF
INT 21H
POP DI
INC DI
POP CX
LOOP LOOP2
;------------ end of program
mov ax, 4c00h
int 21h
main endp
codes ends
end main