Сохранить два бита числа для операций с ними - Assembler
Формулировка задачи:
Пользователь вводит число от 0 до 255 и номера двух битов этого числа. Как мне извлечь эти два бита чтобы работать с ними? Просто чтобы они лежали где то в регистрах
Решение задачи: «Сохранить два бита числа для операций с ними»
textual
Листинг программы
model tiny,pascal .code org 100h begin: call InpNum,offset dbInpNum cmp ax,0FFh ja Begin mov dbNumber,al @@01: call InpNum,offset dbInpBit cmp ax,7 ja @@01 mov dbNumOne,al @@02: call InpNum,offset dbInpBit cmp ax,7 ja @@02 mov dbNumTwo,al xor cx,cx mov dx,101h mov cl,dbNumOne shl dl,cl mov cl,dbNumTwo shl dh,cl xor ah,ah mov al,dbNumber call OutNum,offset dbRes,ax,10 call OutNum,offset dbRes,ax,2 xor al,dl call OutNum,offset dbRes,ax,2 xor al,dh call OutNum,offset dbRes,ax,2 mov ah,9 lea dx,dbPres int 21h xor ax,ax int 16h ret dbInpNum db 10,13,'Enter number:$' dbInpBit db 10,13,'Enter bit number:$' dbRes db 10,13,'Result:$' dbPres db 10,13,'press any key$' InpNum proc a:word mov ah,9 mov dx,a int 21h mov di,10 xor bx,bx IN01: xor ax,ax int 16h cmp al,13 jz IN02 cmp al,'0' jb IN01 cmp al,'9' ja IN01 int 29h and ax,0fh xchg bx,ax xor dx,dx mul di add bx,ax or bh,bh jmp IN01 IN02: mov ax,bx ret InpNum endp OutNum proc a:word,b:word,c:word uses ax,dx mov ah,9 mov dx,a int 21h mov ax,b mov di,c xor cx,cx ON01: xor dx,dx div di or dl,'0' push dx inc cx or ax,ax jnz ON01 ON02: pop ax int 29h loop ON02 ret OutNum endp dbNumber db ? dbNumOne db ? dbNumTwo db ? end begin
Объяснение кода листинга программы
- Сохранение двух битов числа для операций с ними
- Ввод числа и двух битов
- Представление вводимых данных
- Вывод результата
- Завершение работы программы
- Проверка нажатой клавиши
- Вывод сообщения
- Возврат в основную программу
- Проверка корректности введенного числа
- Вычисление результата
- Проверка корректности введенного бита
- Вычисление результата
- Вычисление результата
- Вывод результата
- Проверка корректности введенного бита
- Вычисление результата
- Вывод результата
- Проверка корректности введенного бита
- Вычисление результата
- Вывод результата
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д