the_king
مدیرکل انجمن
چاپ اعداد در زبان اسمبلی مشکل است، ماکروی زیر کمک می کند تا کار چاپ اعداد مثبت 16 بیتی ساده شوند :
مثلا کد زیر عدد 12345 را چاپ می کند :
چون در داخل کد ماکرو از PUSH و POP برای نگهداری مقادیر رجیستر ها استفاده شده، مقادیر قبلی آنها بصورت
تضمین شده حفظ می شوند.
کد:
print MACRO number
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AX, number
MOV CX, 0
MOV BX, 10
loop_1:
MOV DX, 0
DIV BX
PUSH DX
INC CX
CMP AX, 0
JNE loop_1
MOV AH, 2
loop_2:
POP DX
ADD DL, "0"
INT 21H
LOOP loop_2
POP DX
POP CX
POP BX
POP AX
ENDM
مثلا کد زیر عدد 12345 را چاپ می کند :
کد:
print 12345
چون در داخل کد ماکرو از PUSH و POP برای نگهداری مقادیر رجیستر ها استفاده شده، مقادیر قبلی آنها بصورت
تضمین شده حفظ می شوند.