Как обнулить регистр? - Assembler
Формулировка задачи:
Подскажите, как обнулить отдельные регистры в ассемблере?
Решение задачи: «Как обнулить регистр?»
textual
Листинг программы
mov ax,0 ;обнуление MOV'ом sub ax,ax ;вычитаем регистр сам из себя xor ax,ax ;арвиХакер, ксорящий ворды в уме and ax,0 ;логика - тоже неплохой вариант imul ax,0 ;более хитро: умножим на 0. shr ax,16 ;cдвиг (не путать со спрыгом) loop $ ;обнулим (E)CX cwd ;обнулим DX aam 1 ;обнулим AL. (AH=AL,AL=0) aad 0 ;обнулим AH in ax,81h ;более хитро: прочитаем 0 из порта mov eax,fs:[10h] ;cчитаем ноль из сегмента FS (PE файл) call GetCurrentObject ;вызовем функцию с кривыми параметрами (вернется NULL в EAX) push 0 / pop ax ;используя стек
Объяснение кода листинга программы
- mov ax,0 - обнуление MOV'ом
- sub ax,ax - вычитаем регистр сам из себя
- xor ax,ax - арвиХакер, ксорящий ворды в уме
- and ax,0 - логика - тоже неплохой вариант
- imul ax,0 - более хитро: умножим на 0.
- shr ax,16 - cдвиг (не путать со спрыгом)
- loop $ - обнулим (E)CX
- cwd - обнулим DX
- aam 1 - обнулим AL. (AH=AL,AL=0)
- aad 0 - обнулим AH
- in ax,81h - более хитро: прочитаем 0 из порта
- mov eax,fs:[10h] - считаем ноль из сегмента FS (PE файл)
- call GetCurrentObject - вызовем функцию с кривыми параметрами (вернется NULL в EAX)
- push 0 / pop ax - используя стек
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д