Для чего мы толкаем в стек второй раз содержимое регистра АХ? - Assembler
Формулировка задачи:
народ добрый день. помогите пожайлуста понять, изучаю ассемблер по калашникову, там дан один пример
подскажите, там где выделено жирным шрифтом, для чего мы толкаем в стек второй раз содержимое регистра АХ? я понял это так, что в АХ хранится код нажатой клавиши, мы "сохраняем" содержимое АХ в вместе с другими регистрами, потом повторно закладываем содержимое регистра АХ в стек для того чтобы взять его в дальнейшем. добавить атрибут символа и вывести на экран, но разве не проще было бы просто заложить АХ в стек последним провести с ним действия до 21 прерывания и потом вернутся? заранне спасибо. прошу сильно не материть меня я недавно начал читать
cseg segment assume cs:cseg, ds cseg, es:cseg, ss:cseg org 100h Begin: call wait_key cmp al,27 je Quit_prog cmp al,0 je Begin call Out_char jmp Begin Quit_prog: mov al,32 call Out_char int 20h Wait_key proc mov ah,10h int 16h ret Wait_key endp Out_char proc push cx [B] push ax[/B] push es [B]push ax[/B] mov ax,0B800h mov es,ax mov di,0 mov cx,2000 pop ax mov ah,31 Next_sym: mov es:[di],ax inc di inc di looop Next_sym pop es pop ax pop cx Out_char endp cseg ends end Begin
Решение задачи: «Для чего мы толкаем в стек второй раз содержимое регистра АХ?»
textual
Листинг программы
mov bx,0B800h mov es,bx mov di,0 mov cx,2000
Объяснение кода листинга программы
- «mov bx,0B800h» — в данном коде это означает, что значение переменной BX устанавливается равным 0B800h.
- «mov es,bx» — это означает, что значение регистра ES устанавливается равным значению переменной BX.
- «mov di,0» — это означает, что значение переменной DI устанавливается равным 0.
- «mov cx,2000» — это означает, что значение переменной CX устанавливается равным 2000. Данный код, вероятно, используется для работы с сегментными регистрами и начальной адресацией в памяти. Он устанавливает начальный адрес сегмента в BX, затем передает его в регистр ES. Затем он устанавливает начальное значение индекса в DI, и начальное значение счетчика в CX.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д