Ввести содержимое регистра на экран - Assembler
Формулировка задачи:
Имя регистра задаётся с клавиатуры. Нужен по-возможности компактный код.
Пытался считать хэш с ввода, и по нему перейти в таблице, но получаю коллизию - хэш строк DX и SI получается одинаковым. Одним словом, нужен алгоритм для: "Если ввели BP, то отправить его в AX!" (для вывода на экран). Кто-что может посоветовать? 10 подряд/идущих 'CMP' просьба не предлагать. Нужно что-то по типу 'XLAT', да чтоб без лишних байтиков. Спасибо..
Решение задачи: «Ввести содержимое регистра на экран»
textual
Листинг программы
org 100h pusha mov bp,sp mov dx,dbEnt @@00: mov ah,9 int 21h mov ah,10 mov dx,dbMax int 21h mov ax,[dwBuf] mov cx,8 mov di,dbReg repnz scasw ;тут анализ флагов mov si,cx shl si,1 mov ax,[bp+si] mov sp,bp popa ret dbErr db 10,13,'wrong register name' dbEnt db 10,13,'Enter register name:$' dbReg db 'axbxcxdxsidibpsp';регистры нужно записать так, чтобы значение СХ совпадало со сзначением индекса в стеке dbMax db 3 db ? dwBuf dw 3 dup (?)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д