ورود

View Full Version : چطور میشه یک عدد رو با وقفه به مانیتور چاپ کرد ؟



احسان_1
دوشنبه 02 دی 1387, 15:23 عصر
سلام دوستان خسته نباشید

بنده با استفاده از وقفه ها می تونم یک کاراکتر مثلاً A رو وری مانیتور چاپ کنم اما اگر بخوام عدد 65 رو به جای A چاپ کنم نمی دونم باید چکار کنم . :متفکر:

این کد که این جا نوشتم برای چاپ حرف A هستش لطفاً بگید چه تغییری رو توی اون بدم که به جای A عدد 65 چاپ بشه



title ehsan
.model small

.stack 100h
.data
value1 dd 100h

.code

main proc
.386
mov ax,@data
mov ds,ax
mov ah,02h
mov dl,65
int 21h
mov ax,4c00h
int 21h

main endp
end main

Open-Source
دوشنبه 02 دی 1387, 17:20 عصر
فقط باید با وقفه 21h/ah=2 باشه؟؟؟
چون این وقفه فقط یک کاراکتر(8بیت)چاپ میکنه.ولی 65 دوتا کاراکتر است.
شما میتونی از وقفه 21h/ah=9 برای چاپ رشته استفاده کنی

احسان_1
دوشنبه 02 دی 1387, 18:22 عصر
دوست من بنده این تغییر رو اعمال کردم ولی جواب نداد .
یه مشت چرت و چرت چاپ کرد و چند تا بوق هم زد (فکر کنم فحش داد) :لبخند::لبخند:




mov ah,09h

Open-Source
دوشنبه 02 دی 1387, 18:29 عصر
title ehsan
.model small


.stack 100h
.data
value1 dd 100h
str1 db "65$";
.code

main proc
mov ax,@data
mov ds,ax
mov ah,9
mov dx,offset str1
int 21h
mov ax,4c00h
int 21h

main endp
end main

Open-Source
دوشنبه 02 دی 1387, 18:31 عصر
این تکه کد بالا 65 رو در خروجی چاپ میکنه.
دقت کن ببین dx آدرس offst متفییر رو میگیره.
تازمانی که به کاراکتر$ نرسیده چاپ میکنه.