Перевести значения из memory в программный код - Assembler
Формулировка задачи:
Здравствуйте! если есть у кого-нибудь какие-нибудь соображения буду весьма сознателен!
Задача:
Перевести значения из memory в программный код!
на верхнем рисунке code segment, снизу data segment
code segment я преобразовал!
он верный, перепроверял!
mov ax, data mov ds, ax mov es, ax MOV AH, 09H MOV DX, 0H INT 21H XOR AX, AX MOV AH, 1H INT 21H MOV DL, AL SUB DL, 30H CMP DL, 9H JLE METKA1 SUB DL, 7H METKA1: MOV CL, 4H SHL DL, CL INT 21H SUB AL, 30H CMP AL, 9H JLE METKA2 SUB AL, 7H METKA2: ADD DL, AL MOV AX, 4C00H INT 21H
СОБСТВЕННО ВОПРОС КУДА "ВСУНУТЬ" data segment и каким образом???????
Решение задачи: «Перевести значения из memory в программный код»
textual
Листинг программы
;TASM, сохранять в 866 кодовой странице. .model small .data dannii db 'Введите две шестнадцатеричные цифры,$' .stack .code start: mov ax, @data mov ds, ax mov es, ax MOV AH, 09H MOV DX, offset dannii INT 21H XOR AX, AX MOV AH, 1H INT 21H MOV DL, AL SUB DL, 30H CMP DL, 9H JLE METKA1 SUB DL, 7H METKA1: MOV CL, 4H SHL DL, CL INT 21H SUB AL, 30H CMP AL, 9H JLE METKA2 SUB AL, 7H METKA2: ADD DL, AL MOV AX, 4C00H INT 21H end start
Объяснение кода листинга программы
Данный код на языке Assembler выполняет следующие действия:
- Ввод двух шестнадцатеричных цифр с клавиатуры в переменную dannii. (Введённые цифры будут сохранены в регистре AL)
- Перевод строки в нижний регистр. (результат будет сохранен в регистре DL)
- Сравнение введённых цифр с числом 9. (Если введена цифра от 0 до 8, то выполняется блок METKA1, иначе выполняется блок METKA2)
- Выполнение операции сдвига влево на 4 позиции для переменной DL. (результат будет сохранен в регистре DL)
- Сравнение результата сдвига с числом 9. (Если результат сдвига от 0 до 8, то выполняется блок METKA2, иначе выполняется блок METKA1)
- Выполнение операции сложения для переменных DL и AL. (результат будет сохранен в регистре DL)
- Запись в регистр AX значения 4C00H. (что соответствует команде
RET
в языке C) - Вызов функции INT 21H для выполнения команды
RET
. (которая завершает выполнение программы)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д