Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› Небольшой вопрос
Посл.ответ Сообщение

Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 то кроме буквы много всякой хни выходит (откомпилированная программа в аттаче)

5740_21.08.2007_CRACKLAB.rU.tgz - 11.COM



Ранг: 21.1 (новичок)
Активность: 0.030
Статус: Участник

Создано: 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



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 21 августа 2007 12:49 · Поправил: Sturgeon
· Личное сообщение · #3

Not defined пишет:
куда пихать терминатор $

Соответственно, после того, что тебе надо вывести.
Попробуй так:

Letter dw 0
db '$' или db 24

У меня почему-то не запустилась прога.



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 августа 2007 12:49
· Личное сообщение · #4

Спасибо, в Ошибочном_послании действительно терминатор забыл поставить) Да, тут лучше эту функцию использовать



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 августа 2007 12:51
· Личное сообщение · #5

To Stungeon :
Тоже спасибо, попробую так и так


 eXeL@B —› Вопросы новичков —› Небольшой вопрос
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати