Сдвинуть три слова на 1 бит влево - Assembler

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

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

помогите написать команды, которые сдвигают три слова на 1 бит влево

Решение задачи: «Сдвинуть три слова на 1 бит влево»

textual
Листинг программы
    mov ax,[x]
    mov bx,[x+2]
    mov cx,[x+4]
    add ax,ax
    adc bx,bx
    adc cx,cx
        mov [y],ax
        mov [y+2],bx
        mov [y+4],cx

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

  1. mov ax,[x] — в данном выражении «mov» означает «переместить», а «ax» — это регистр, в который будет записан результат. «[x]» — это адрес памяти, откуда будет считан результат. Здесь АСМ перемещает значение из памяти по адресу «x» в регистр АХ.
  2. mov bx,[x+2] — то же самое, что и в предыдущем выражении, только в этот раз значение будет перемещено в регистр BX, а адрес памяти будет на два байта больше.
  3. mov cx,[x+4] — то же самое, что и в предыдущих двух выражениях, только в этот раз значение будет перемещено в регистр CX, а адрес памяти будет на четыре байта больше.
  4. add ax,ax — «add» означает «сложить», а «ax» — это регистр, в котором хранится значение, с которым нужно сложить. Здесь АСМ складывает значение из регистра AX с самим собой.
  5. adc bx,bx — то же самое, что и в предыдущем выражении, только в этот раз значение будет сложено с регистром BX.
  6. adc cx,cx — то же самое, что и в предыдущих двух выражениях, только в этот раз значение будет сложено с регистром CX.
  7. mov [y],ax — «mov» означает «переместить», а «[y]» — это адрес памяти, куда будет записано значение. Здесь АСМ записывает значение из регистра AX в память по адресу «y».
  8. mov [y+2],bx — то же самое, что и в предыдущем выражении, только в этот раз значение будет записано в память по адресу «y+2».
  9. mov [y+4],cx — то же самое, что и в предыдущих двух выражениях, только в этот раз значение будет записано в память по адресу «y+4».

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

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