Сдвинуть три слова на 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
Объяснение кода листинга программы
- mov ax,[x] — в данном выражении «mov» означает «переместить», а «ax» — это регистр, в который будет записан результат. «[x]» — это адрес памяти, откуда будет считан результат. Здесь АСМ перемещает значение из памяти по адресу «x» в регистр АХ.
- mov bx,[x+2] — то же самое, что и в предыдущем выражении, только в этот раз значение будет перемещено в регистр BX, а адрес памяти будет на два байта больше.
- mov cx,[x+4] — то же самое, что и в предыдущих двух выражениях, только в этот раз значение будет перемещено в регистр CX, а адрес памяти будет на четыре байта больше.
- add ax,ax — «add» означает «сложить», а «ax» — это регистр, в котором хранится значение, с которым нужно сложить. Здесь АСМ складывает значение из регистра AX с самим собой.
- adc bx,bx — то же самое, что и в предыдущем выражении, только в этот раз значение будет сложено с регистром BX.
- adc cx,cx — то же самое, что и в предыдущих двух выражениях, только в этот раз значение будет сложено с регистром CX.
- mov [y],ax — «mov» означает «переместить», а «[y]» — это адрес памяти, куда будет записано значение. Здесь АСМ записывает значение из регистра AX в память по адресу «y».
- mov [y+2],bx — то же самое, что и в предыдущем выражении, только в этот раз значение будет записано в память по адресу «y+2».
- mov [y+4],cx — то же самое, что и в предыдущих двух выражениях, только в этот раз значение будет записано в память по адресу «y+4».