PDA

View Full Version : سوال: نحوه صدور پیام کاراکتری



p30_code
جمعه 05 خرداد 1391, 21:56 عصر
صدور پیام ،کارکتری را از صفحه کلید خوانده ،با پیام دیگر آن کارکتر را در صفحه نمایش ظاهر می
کند. فقط این پیغام رو نشون میده.کسی میتونه راهنایی کنه.




data segment

msg1 db ' pless enter charachter :',"$"

msg2 db 'you typed this character:',"$"

help db ?


data ends

stack segment

db 32 dup ("stack")

ends


code segment


start:

mov ax, data
mov ds, ax
mov es, ax

mov ah,2h ;coursor move
mov dh,10 ;row
mov dl,30 ;coulmn
mov bh,0 ;page number
mov bl,7
int 10h

mov dx,offset msg1 ;print masseg
mov ah,9h
int 21h

mov ah,1h
int 21h
mov help,al


mov ah,2h ;coursor move
mov dh,12 ;row
mov dl,30 ;coulmn
mov bh,0 ;page number
int 10h

mov dx,offset msg2 ;print masseg
mov ah,9h
int 21h


mov dl,help
mov ah,2h
int 21



mov ax,4c00h ;exit
int 21h



ends





INT 15h, AH=02h - not supported yet.
refer to the list of supported interrupts.

if you need int 21h, put h suffix to 21
این پیغام رو میده بعد از وارد کردن کارکتر

MostafaMohammadi
جمعه 05 خرداد 1391, 22:56 عصر
بابا کدهاتون رو بین تگ
قرار بدید تا بشه خوند! آخه اینکار چقدر از شما وقت می گیره؟ باور کنید چش و چال بقیه در میاد.


data segment

msg1 db ' pless enter charachter :',"$"

msg2 db 'you typed this character:',"$"

help db ?


data ends

stack segment

db 32 dup ("stack")

ends


code segment


start:

mov ax, data
mov ds, ax
mov es, ax

mov ah,2h ;coursor move
mov dh,10 ;row
mov dl,30 ;coulmn
mov bh,0 ;page number
mov bl,7
int 10h

mov dx,offset msg1 ;print masseg
mov ah,9h
int 21h

mov ah,1h
int 21h
mov help,al


mov ah,2h ;coursor move
mov dh,12 ;row
mov dl,30 ;coulmn
mov bh,0 ;page number
int 10h

mov dx,offset msg2 ;print masseg
mov ah,9h
int 21h


mov dl,help
mov ah,2h
int 21



mov ax,4c00h ;exit
int 21h



ends
تو خطوط 56 و 57 نوشتی:

[CODE] mov ah,2h
int 21


دستگاه عددی پیشفرض تو Emu8086 دستگاه عددی Decimal، یعنی اگه یه عدد ببینه پیش فرض اش اینه که این عدد توی دستگاه ده دهی نوشته شده. وقتی می نوسی INT 21، می خونه INT 21d که میشه سرویس 02h دستور 15h و Emu8086 این وقفه رو پشتیبانی نمی کنه. احتمالا منظورتون این بوده که بنویسد INT 21h که حرف h رو جا انداختید.
حرف h رو به انتخای خط 57 تون اضافه بکنی، برنامه اجرا میشه و درست ام هست.

p30_code
یک شنبه 07 خرداد 1391, 22:22 عصر
شرمنده تگ [CODE] دقت نکردم:خجالت: