Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ассемблер. Помогите с выводом строки и символа

68K
03 марта 2011 года
Харламов
1 / / 03.03.2011
Всем привет, короче нужно написать программу, которая вводит с клавиатуры строку и выводит её на экран, обрамленную сверху и снизу одинаковыми символами. Данный символ предварительно вводится с клавиатуры.

Должны получить примерно так

**************
Чертов ассемблер
**************

Код:
.model  tiny
 
        .data
sInput  db  'Vvedite stoky:  $'
sInput2 db      0dh, 0ah, 'Vvedite simvol:  $'
sResult db      0dh, 0ah, 'Poluchennaya stroka: $'
 
buf     label   byte            ; буфер для приема строки с клавиатуры (по ф-и 0ah)
max     db      128             ; максимальная длина строки
len     db      0               ; реальная длина введенной строки
string  db      128 dup (?)     ; сама строка
buf2    label   byte            ; буфер для приема строки с клавиатуры (по ф-и 0ah)
max2    db      2               ; максимальная длина строки
len2    db      0               ; реальная длина введенной строки
string2 db      2 dup (?)       ; сама строка
 
        .code
        .startup
 
        lea     dx, sInput
        mov     ah, 9
        int     21h             ; приглашение на экран
 
        lea     dx, buf
        mov     ah, 0ah
        int     21h             ; вводим строку
 
        lea     dx, sInput2
        mov     ah, 9
        int     21h             ; приглашение на экран2
 
        lea     dx, buf2
        mov     ah, 0ah
        int     21h             ; вводим символ
       
        lea     dx, sResult
        mov     ah, 9
        int     21h             ; Result string
 
        lea     si, string2     ; адрес строки
        mov     dh, 0           ; предыдущий символ
MLoop:
        lodsb                   ; очередной
        cmp     al, 0dh         ; введенная строка заканчивается кодом 0dh
        je      exit
        mov     dh, al          ; сохраним
        int     29h             ; и выведем
        jmp     MLoop
 
exit:
        mov     ax, 4c00h
        int     21h
 
        end
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог