Записать содержимое регистра BH в шестнадцатеричной системе - Assembler
Формулировка задачи:
Записать содержимое в шестнадцатиричной системе регистра BH
Переводим BH = 011011001
CLC сбрасывает CL, CL = 0
RCL сдвиг вправо BH = 011011001 = 10110110.
Неверно. Подскажите что я упускаю?
MOV BH, 0D9h MOV CL, 3 CLC RCL BH, CL
Решение задачи: «Записать содержимое регистра BH в шестнадцатеричной системе»
textual
Листинг программы
mov bh,0D9h mov cl,3 clc ;CF=0 rcl bh,cl;CF<- 11011001 <- CF=0 1)CF=1 BH=10110010 2)CF=1 BH=01100101 3)CF=0 BH=11001011
Объяснение кода листинга программы
- Переменная BH содержит значение 0D9h в шестнадцатеричной системе, в десятичной системе это 93.
- Переменная CL содержит значение 3.
- Выполняется команда CLC (сохранить флаг переноса), при этом флаг переноса CF устанавливается в 0.
- Выполняется команда RCL BH, CL (вставить сдвинутый влево флаг переноса в BH).
- Значение BH сдвигается влево на 3 позиции, при этом в старшую позицию вставляется значение CF (0).
- Результат этой операции будет следующим: если исходное значение BH было 0D9h (93 в десятичной системе), то после сдвига влево на 3 позиции получим 01100101 (CF=1). если исходное значение BH было 10110010 (CF=1), то после сдвига влево на 3 позиции получим 11001011 (CF=0).