Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 15.04.2019, 11:49   #1
temsku2
Пользователь
 
Регистрация: 29.11.2018
Сообщений: 12
Репутация: 10
По умолчанию Выход из программы по нажатию клавиши

Друзья, вот программа,которая проверяет строку на наличие пробела в ней, помогите, пожалуйста сделать приглашение к выводу по нажатию определенной клавиши (любой) ибо совсем в этом не разбираюсь
Код:

.model small
    .data
    da db 'there is a space char',0Dh, 0Ah,'$' 
    net db 'there isnt',0Dh, 0Ah,'$'
    null db 'null',0Dh, 0Ah,'$'
    sor db 254,0,254 dup ('$')
    inp db 'enter text:',0Dh, 0Ah,'$'
    .code
    mov ax, @data
    mov ds, ax
start:
    mov ah,9
    lea dx,inp  
    int 21h 
    mov ah, 0ah
    lea dx, sor+2
    int 21h
    mov di,dx
compare:
    inc di
    cmp byte ptr [di], 0
    je outp1
    cmp byte ptr [di], 20h
    je outp
    cmp byte ptr [di], "$"
    je outnet
    jmp compare
 
outp1:
    lea dx, null
    mov ah, 09h
    int 21h
    jmp start
    
outp:
    lea dx, da
    mov ah, 09h
    int 21h
    mov ah, 4ch
    jmp start
 
outnet:
    lea dx, net
    mov ah, 09h
    int 21h
    mov ah, 4ch
    jmp start
 
 
end

temsku2 вне форума   Ответить с цитированием
Старый 15.04.2019, 12:03   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,056
Репутация: 5491
По умолчанию

попробуйте

Код:

.model small
    .data
    da db 'there is a space char',0Dh, 0Ah,'$' 
    net db 'there isnt',0Dh, 0Ah,'$'
    null db 'null',0Dh, 0Ah,'$'
    sor db 254,0,254 dup ('$')
    inp db 'enter text:',0Dh, 0Ah,'$'
    textPressAnyKey db 'Press any key to exit$'
    .code
    mov ax, @data
    mov ds, ax
start:
    lea dx,inp  
    mov ah,9
    int 21h 
    mov ah, 0ah
    lea dx, sor+2
    int 21h
    mov di,dx
compare:
    inc di
    cmp byte ptr [di], 0
    je outp1
    cmp byte ptr [di], 20h
    je outp
    cmp byte ptr [di], "$"
    je outnet
    jmp compare
 
outp1:
    lea dx, null
    mov ah, 09h
    int 21h
    jmp start
    
outp:
    lea dx, da
    mov ah, 09h
    int 21h
    jmp wait4press
 
outnet:
    lea dx, net
    mov ah, 09h
    int 21h

wait4press:
    lea dx, textPressAnyKey
    mov	ah,09h
    int	21h
	
    mov ah,0h
    int 16h
    mov ax, 4c00h
    int	21h
 
 
end

Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Завершение резидентной программы по нажатию клавиши Vi[RUS] Assembler 0 23.11.2013 21:37
Выход по нажатию клавиши bvak Assembler 4 01.02.2012 21:36
Delphi выход из цикла по нажатию клавиши Фиалка001 Помощь студентам 4 16.10.2011 16:01
По нажатию обеих кнопок мыши выход из программы Slash3 Assembler 10 05.04.2009 00:47


22:54.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru