arash مدير بخش سي
Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
|
Posted: Mon Feb 07, 2005 4:53 am Post subject: فایل ماکروی من ... |
|
|
راستش فایل ماکرویی که من نوشتم اینطوری از آب در اومد .
ببینید نظر بدید .
فقط مشکلم سر printf هستش .
این ماکرو باید یک عدد 2 بایتی رو چاپ کنه .
اینم متن ماکرو
| ;-------------------------------cr
cr macro
mov ah,2
mov dl,13
int 21h
mov dl,10
int 21h
endm
;-------------------------------print
print macro f
local Lp1
mov ax,f
mov ah,0
mov bl,10
div bl
mov bh,ah
mov ah,0
div bl
mov dl,ah
mov ah,2
add dl,'0'
cmp dl,'0'
je Lp1
int 21h
Lp1:mov dl,bh
add dl,'0'
int 21h
endm
;-------------------------------printf
printf macro F
local LF1,LF2,LF3,LF4,LF5
MOV AX,F
MOV DH,AL
MOV BX,0
CMP AL,0
JNE LF1
MOV AH,0
MOV AX,F
LF1:MOV AH,0
LF2:CMP AL,10
JB LF3
SUB AL,10
INC BL
JMP LF2
LF3:MOV CL,AL
MOV CH,0
PUSH CX
MOV AL,BL
INC BH
CMP BL,0
JNE LF2
LF4:POP CX
MOV DL,CL
ADD DL,'0'
MOV AH,2
INT 21H
DEC BH
CMP BH,0
JNE LF4
CMP DH,0
JE LF5
MOV AL,DH
MOV DH,0
JMP LF1
LF5:MOV AX,DX
endm
;-------------------------------get
get macro a
local Lg1,Lg2
mov a,0
Lg1:mov ah,7
int 21h
cmp al,13
je Lg2
cmp al,'0'
jb Lg1
cmp al,'9'
ja Lg1
mov dl,al
mov ah,2
int 21h
sub al,'0'
mov dl,al
mov ax,a
mov dh,10
mul dh
add al,dl
mov a,ax
jmp Lg1
Lg2:mov ax,a
mov a,ax
endm
;-------------------------------space
space macro
mov ah,2
mov dl,' '
int 21h
endm
;-------------------------------WRITE
WRITE MACRO M
MOV AH,9
LEA DX,M
INT 21H
ENDM
|
|
|