Записать содержимое регистра BH в шестнадцатеричной системе - Assembler

Узнай цену своей работы

Формулировка задачи:

Записать содержимое в шестнадцатиричной системе регистра BH
MOV BH, 0D9h
MOV CL, 3
CLC
RCL BH, CL
Переводим BH = 011011001 CLC сбрасывает CL, CL = 0 RCL сдвиг вправо BH = 011011001 = 10110110. Неверно. Подскажите что я упускаю?

Решение задачи: «Записать содержимое регистра 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

Объяснение кода листинга программы

  1. Переменная BH содержит значение 0D9h в шестнадцатеричной системе, в десятичной системе это 93.
  2. Переменная CL содержит значение 3.
  3. Выполняется команда CLC (сохранить флаг переноса), при этом флаг переноса CF устанавливается в 0.
  4. Выполняется команда RCL BH, CL (вставить сдвинутый влево флаг переноса в BH).
  5. Значение BH сдвигается влево на 3 позиции, при этом в старшую позицию вставляется значение CF (0).
  6. Результат этой операции будет следующим: если исходное значение BH было 0D9h (93 в десятичной системе), то после сдвига влево на 3 позиции получим 01100101 (CF=1). если исходное значение BH было 10110010 (CF=1), то после сдвига влево на 3 позиции получим 11001011 (CF=0).    

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы