![]() |
eXeL@B —› Вопросы новичков —› Небольшой вопрос |
Посл.ответ | Сообщение |
|
Создано: 21 августа 2007 11:44 · Личное сообщение · #1 code segment assume cs:code, ds:code, es:code, ss:code org 100h Begin: mov ah,10h int 16h mov Letter,ax ; Letter код буквы, под него зарезервировано 2 байта call out_char jmp Begin int 20h ; ---------Procedures---------- out_char proc push cx push ax push es cmp al,1bh ;нажат ESC jz Quit_prog cmp al, 0 ;это если вдруг нажат какой-нибудь управляющий символ типа F1 и т. д. jz Begin mov ah,9h mov dx, offset Letter ; вот тут и вопрос (см. ниже) int 21h pop es pop ax pop cx ret out_char endp Quit_prog: mov ah,9h mov dx, offset Err_mes int 21h mov ah,10h int 16h int 20h Err_mes db 'Have a nice day!' Letter dw 0 code ends end Begin --------------------- Вопрос: куда пихать терминатор $ a то кроме буквы много всякой хни выходит (откомпилированная программа в аттаче) ![]() ![]() |
|
Создано: 21 августа 2007 12:44 · Поправил: Satyr · Личное сообщение · #2 Вот так будет правильно: code segment assume cs:code, ds:code, es:code, ss:code org 100h Begin: mov ah,10h int 16h mov Letter,ax ; Letter код буквы, под него зарезервировано 2 байта call out_char jmp Begin int 20h ; ---------Procedures---------- out_char proc push cx push ax push es cmp al,1bh ;нажат ESC jz Quit_prog cmp al, 0 ;это если вдруг нажат какой-нибудь управляющий символ типа F1 и т. д. jz Begin mov ah, 02h mov dl,al int 21h pop es pop ax pop cx ret out_char endp Quit_prog: mov ah,9h mov dx, offset Err_mes int 21h mov ah,10h int 16h int 20h Err_mes db 'Have a nice day!$' Letter dw 0 code ends end Begin ![]() |
|
Создано: 21 августа 2007 12:49 · Поправил: Sturgeon · Личное сообщение · #3 |
|
Создано: 21 августа 2007 12:49 · Личное сообщение · #4 |
|
Создано: 21 августа 2007 12:51 · Личное сообщение · #5 |
![]() |
eXeL@B —› Вопросы новичков —› Небольшой вопрос |