Created
November 20, 2012 17:30
-
-
Save norcle/4119450 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.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