АБ
Артем Бейсюк

Ассемблер. Что делает каждая строка в коде?

Здравствуйте!
Прошу вашей помощи.
Что делает каждая строка в этом коде?
MASM
MODEL SMALL

.DATA
D DB 0
buf DB 3, 0, 0, 0, 0, 0
text DB 'vvedite symvol$'
.STACK 256

.CODE
MAIN PROC
MOV AX,@DATA
MOV DS, AX
MOV AH, 9
MOV DX, OFFSET text
INT 21H
MOV AH,1
INT 21H
MOV D,AL

MOV AH,6
MOV DL,10
INT 21H

MOV AH,6
MOV DL,13
INT 21H

MOV AL,D
ADD AL,AL
MOV AH,6
SUB AL,30H
MOV DL,AL
INT 21H
MOV AX, 4C00H
INT 21H
MAIN ENDP
END MAIN
Спасибо за внимание.

Елена
Елена

Читайте, что делают функции DOS (прерывание 21h): http://www.codenet.ru/progr/dos/int_0026.php

Аня
Аня

.CODE
MAIN PROC
;Инициализация сегмента данных
MOV AX,@DATA
MOV DS, AX
MOV AH, 9
;Вывод даннах, хранящихтя в text
MOV DX, OFFSET text
INT 21H
MOV AH,1
INT 21H
MOV D,AL
;Что-то вроде запроса на ввод символа. Точно не помню.
MOV AH,6
MOV DL,10
INT 21H
;Не знаю, что тут происходит
MOV AH,6
MOV DL,13
INT 21H

MOV AL,D ; Копируем в AL сщдержимое D
ADD AL,AL Умножаем AL на 2
MOV AH,6 ;Заносим в AH 6

SUB AL,30H;Прибавляем к содержимому регистра AL 30H(H значит, что число в 16-тиричной системе счисления)
MOV DL,AL ;Копируем в DL содержимое AL
INT 21H ;Вызываем 21 прерывание
MOV AX, 4C00H ;В AX заносим 4C00H
INT 21H;Вызываем 21 прерывание
MAIN ENDP
END MAIN

Давно не пользовался амом, да и диалект какой-то не родной, так что могут быть ошибки.

Похожие вопросы
Переворот строки на ассемблере.
Ассемблер, вывод строки
Вставка ассемблера в код C++
Ассемблер (MASM). Как изменить код программы, чтобы можно было вводить строку с клавиатуры?
За что отвечает каждая строка кода?
Ассемблер. Что делает каждая строка в коде?
Ассемблер. Помогите разобраться с кодом
Как перевести машинный код в язык ассемблера
нужен код на ассемблере
ассемблер, длина строки (код в описании)