Введите 8 битов с клавиатуры. Выведите на экран введенное число в шестнадцатеричной системе. - Assembler
Формулировка задачи:
Введите 8 битов с клавиатуры - последовательность 0 и 1. Выведите на экран введенное число в шестнадцатеричной системе счисления. Программа должна быть в одном сегменте. Кода нет, так как я в ассемблере новичок, а задачу нужно сделать. Заранее спасибо!!!
Решение задачи: «Введите 8 битов с клавиатуры. Выведите на экран введенное число в шестнадцатеричной системе.»
textual
Листинг программы
.model small .386 .stack 100h .data var db 8 dup(?) .code start: mov ax,@data mov ds,ax mov es,ax lea di,var mov cx,8 input: mov ah,01h int 21h and al,0Fh stosb loop input mov ah,02h mov dl,0Ah int 21h mov ah,02h mov dl,0Dh int 21h lea si,var+3 mov cx,4 get1: mov ah,byte ptr [si] shr ax,1 dec si loop get1 shr ax,4 add al,30h cmp al,39h ja big1 jmp print1 big1: add al,07h print1: mov ah,02h mov dl,al int 21h lea si,var+7 mov cx,4 get2: mov ah,byte ptr [si] shr ax,1 dec si loop get2 shr ax,4 add al,30h cmp al,39h ja big2 jmp print2 big2: add al,07h print2: mov ah,02h mov dl,al int 21h mov ah,4Ch mov al,00h int 21h end start
Объяснение кода листинга программы
- Установка начального сегмента данных и кода в регистре AX при помощи @data.
- Переменная var DBF имеет 8 байтов, заполненных символами вопроса.
- Цикл input считывает по одному символу из ввода пользователя и записывает его в переменную var.
- Цикл get1 считывает первые 4 байта из переменной var и выполняет сдвиг и деление на 10 для получения десятичного числа.
- Цикл get2 считывает следующие 4 байта из переменной var и выполняет сдвиг и деление на 10 для получения десятичного числа.
- После выполнения обоих циклов, полученные два десятичных числа объединяются в одно 8-байтовое число.
- Если старшая четверка байтов больше 7, то добавляется 7 для приведения к шестнадцатеричному формату.
- При помощи int 21h выводится результат на экран.
- При помощи int 21h выводится символ новой строки.
- Завершение работы программы при помощи int 21h с аргументом 4Ch.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д