Как обнулить регистр? - Assembler

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

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

Подскажите, как обнулить отдельные регистры в ассемблере?

Решение задачи: «Как обнулить регистр?»

textual
Листинг программы
  1.      mov   ax,0               ;обнуление MOV'ом
  2.      sub   ax,ax              ;вычитаем регистр сам из себя
  3.      xor   ax,ax              ;арвиХакер, ксорящий ворды в уме
  4.      and   ax,0               ;логика - тоже неплохой вариант
  5.      imul  ax,0               ;более хитро: умножим на 0.
  6.      shr   ax,16              ;cдвиг (не путать со спрыгом)
  7.      loop  $                  ;обнулим (E)CX
  8.      cwd                      ;обнулим DX
  9.      aam   1                  ;обнулим AL. (AH=AL,AL=0)
  10.      aad   0                  ;обнулим AH
  11.      in    ax,81h             ;более хитро: прочитаем 0 из порта
  12.      mov   eax,fs:[10h]       ;cчитаем ноль из сегмента FS (PE файл)
  13.      call  GetCurrentObject   ;вызовем функцию с кривыми параметрами (вернется NULL в EAX)
  14.      push  0  / pop ax        ;используя стек

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

  1. mov ax,0 - обнуление MOV'ом
  2. sub ax,ax - вычитаем регистр сам из себя
  3. xor ax,ax - арвиХакер, ксорящий ворды в уме
  4. and ax,0 - логика - тоже неплохой вариант
  5. imul ax,0 - более хитро: умножим на 0.
  6. shr ax,16 - cдвиг (не путать со спрыгом)
  7. loop $ - обнулим (E)CX
  8. cwd - обнулим DX
  9. aam 1 - обнулим AL. (AH=AL,AL=0)
  10. aad 0 - обнулим AH
  11. in ax,81h - более хитро: прочитаем 0 из порта
  12. mov eax,fs:[10h] - считаем ноль из сегмента FS (PE файл)
  13. call GetCurrentObject - вызовем функцию с кривыми параметрами (вернется NULL в EAX)
  14. push 0 / pop ax - используя стек

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы