MostafaMohammadi
یک شنبه 27 فروردین 1391, 00:34 صبح
سلام
من این برنامه رو در emu8086 version 4.08 نوشتم و بدون هیچ پیغام خطایی Emulate میشه:
; ------------------------------
; | 1- Introducing the program |
; ------------------------------
TITLE 'REVERSE.ASM' Print the reverse of a string
;
; ---------------------------------
; | 2- Defining the Stack segment |
; ---------------------------------
SSEG SEGMENT
DD 100 DUP('ST')
SSEG ENDS
;
; --------------------------------
; | 3- Defining the Data segment |
; --------------------------------
DSEG SEGMENT
STR DB 64 DUP(0)
REV DB 64 DUP(0)
COUNT DB 0
DSEG ENDS
;
; --------------------------------
; | 4- Defining the Code segment |
; --------------------------------
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG
START PROC FAR
MOV AX,DSEG
MOV DS,AX
;
; -------------------------------------
; | 5- Getting a string from keyboard |
; -------------------------------------
LEA BX,STR
l1: MOV AH,01H
INT 21H
CMP AL,13
JE L2
MOV [BX],AL
INC BX
JMP L1
L2: MOV [BX],'$'
;
; --------------------------
; | 6- Clearing the screen |
; --------------------------
MOV AH,07H
MOV AL,00H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
;
; ---------------------------------
; | 7- Going to line 10, column 5 |
; ---------------------------------
MOV AH,2H
MOV BH,00H
MOV DH,10
MOV Dl,5
INT 10H
;
; --------------------------
; | 8- Printing the string |
; --------------------------
MOV AH,09H
LEA DX,STR
INT 21H
;
; ---------------------------------------
; | 9- Counting the length of the string |
; ---------------------------------------
LEA BX,STR
L3: MOV DL,[BX]
CMP DL,'$'
JE L4
INC COUNT
INC BX
JMP L3
;
; ---------------------------------------
; | 10- Saving the reverse of the string |
; ---------------------------------------
L4: LEA BX,REV
MOV DH,0
MOV DL,COUNT
ADD BX,DX
MOV [BX],'$'
DEC BX
LEA SI,STR
L5: CMP [SI],'$'
JE L6
MOV DH,[SI]
MOV [BX],DH
INC SI
DEC BX
JMP L5
; ----------------------------------
; | 11- Going to line 11, column 5 |
; ----------------------------------
L6: MOV AH,2H
MOV BH,00H
MOV DH,11
MOV Dl,5
INT 10H
;
; ------------------------------------------
; | 12- Printing the reverse of the string |
; ------------------------------------------
MOV AH,09H
LEA DX,REV
INT 21H
;
; --------------------------
; | 13- End of the program |
; --------------------------
START ENDP
CSEG ENDS
END START
ولی وقتی می خوام همین برنامه رو از طریق MASM کامپایل کنم چندین پیغام خطا میده.
85767
میشه راهنمایی ام کنید؟
من این برنامه رو در emu8086 version 4.08 نوشتم و بدون هیچ پیغام خطایی Emulate میشه:
; ------------------------------
; | 1- Introducing the program |
; ------------------------------
TITLE 'REVERSE.ASM' Print the reverse of a string
;
; ---------------------------------
; | 2- Defining the Stack segment |
; ---------------------------------
SSEG SEGMENT
DD 100 DUP('ST')
SSEG ENDS
;
; --------------------------------
; | 3- Defining the Data segment |
; --------------------------------
DSEG SEGMENT
STR DB 64 DUP(0)
REV DB 64 DUP(0)
COUNT DB 0
DSEG ENDS
;
; --------------------------------
; | 4- Defining the Code segment |
; --------------------------------
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG
START PROC FAR
MOV AX,DSEG
MOV DS,AX
;
; -------------------------------------
; | 5- Getting a string from keyboard |
; -------------------------------------
LEA BX,STR
l1: MOV AH,01H
INT 21H
CMP AL,13
JE L2
MOV [BX],AL
INC BX
JMP L1
L2: MOV [BX],'$'
;
; --------------------------
; | 6- Clearing the screen |
; --------------------------
MOV AH,07H
MOV AL,00H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
;
; ---------------------------------
; | 7- Going to line 10, column 5 |
; ---------------------------------
MOV AH,2H
MOV BH,00H
MOV DH,10
MOV Dl,5
INT 10H
;
; --------------------------
; | 8- Printing the string |
; --------------------------
MOV AH,09H
LEA DX,STR
INT 21H
;
; ---------------------------------------
; | 9- Counting the length of the string |
; ---------------------------------------
LEA BX,STR
L3: MOV DL,[BX]
CMP DL,'$'
JE L4
INC COUNT
INC BX
JMP L3
;
; ---------------------------------------
; | 10- Saving the reverse of the string |
; ---------------------------------------
L4: LEA BX,REV
MOV DH,0
MOV DL,COUNT
ADD BX,DX
MOV [BX],'$'
DEC BX
LEA SI,STR
L5: CMP [SI],'$'
JE L6
MOV DH,[SI]
MOV [BX],DH
INC SI
DEC BX
JMP L5
; ----------------------------------
; | 11- Going to line 11, column 5 |
; ----------------------------------
L6: MOV AH,2H
MOV BH,00H
MOV DH,11
MOV Dl,5
INT 10H
;
; ------------------------------------------
; | 12- Printing the reverse of the string |
; ------------------------------------------
MOV AH,09H
LEA DX,REV
INT 21H
;
; --------------------------
; | 13- End of the program |
; --------------------------
START ENDP
CSEG ENDS
END START
ولی وقتی می خوام همین برنامه رو از طریق MASM کامپایل کنم چندین پیغام خطا میده.
85767
میشه راهنمایی ام کنید؟