Skip to content

Instantly share code, notes, and snippets.

@norcle
Created November 20, 2012 17:30
Show Gist options
  • Save norcle/4119450 to your computer and use it in GitHub Desktop.
Save norcle/4119450 to your computer and use it in GitHub Desktop.
.186
.model tiny
.code
org 100h
start:
;----------------------------------------------------------------------
;Вывод на экран информацию о кол-во макс. символов
;Приглашение
mov ah,09h
lea dx,str3
int 21h
;Информация
add maxlen,2fh ;прибавляем к число 30h-1h
;чтобы сделать его символом
;-1h потому что фактических
;символов на 1 меньше
mov ah,40h ;40h функция
mov bx,1 ;устройство STDOUT
mov cx,1 ;кол-во выводимых символов
lea dx,maxlen ;адрес строки
int 21h ;прерывание
sub maxlen,2fh ;возвращаем переменной
;исходное значение
;(вычитаем 30h-1h)
;
;
;----------------------------------------------------------------------
;Ввод строки через буфер
;Приглашение ввести строку
mov ah,09h
lea dx,str1
int 21h
;Ввод строки
mov ah,0ah ;Функция А
lea dx,maxlen ;адрес переменной
int 21h ;прерывание
;
;
;----------------------------------------------------------------------
;Показать кол-во введенных символов
;Приглашение
mov ah,9h
lea dx,str4
int 21h
;Информация о кол-ве введенных символах
add len,30h ;Преобразовываем число в символ
mov ah,40h ;Функция 40h
mov bx,1 ;STDOUT
mov cx,1 ;length=1
lea dx,len ;адрес len
int 21h ;прерывание
sub len,30h ;исходное значение переменной
;
;----------------------------------------------------------------------
;Показать введенную строку на экране
;Приглашение
mov ah,9h
lea dx,str2
int 21h
;Вывод строки на экран
mov ah,40h ;40 функция
mov bx,1 ;STDOUT
mov cl,len ;Помещаем значение переменной
;len в регистр CX, но так как
;регистр СХ двухбайтовая
;а переменная len однабайтовая
;помещаем её в младшую часть
;регистра - CL
lea dx,text ;адрес переменной text
int 21h ;прерывание
ret ;возвращаемся в DOS
;
;
;
;----------------------------------------------------------------------
;----------------------------------------------------------------------
str1 db 0dh,0ah,"Введите строку: ",0dh,0ah,'$'
str2 db 0dh,0ah,"Вы ввели строку: ",0dh,0ah,'$'
str3 db "Макс. кол-во символов: ",0dh,0ah,'$'
str4 db 0dh,0ah,"Было введено символов: ",0dh,0ah,'$'
maxlen db 6h
len db 0h
text db 0ah dup(20h)
end start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment