2017-02-18 7 views
1
.data 
num dd 090F0433H 
.code 
mov ax, @data 
mov ds, ax 
mov ax, word ptr num 
mov bx, word ptr num+2 
mov cl, byte ptr num+1 

Для мов ах, слово PTR NUM, AH = 04, AL = 33.Собрание Слово PTR означает

Почему? Может кто-нибудь объяснить мне, как это понять?

+2

Практически любое руководство для новичков, учебник или книга должны были сказать вам, что это значит. –

ответ

4
num dd 090F0433H 

Это определяет двойное слово в памяти. Поскольку x86 использует малое значение, младший байт этого dword будет храниться с наименьшим адресом. Вы решили назвать этот самый низкий адрес «num».

В память:

33h,04h,0Fh,09h 
^ 
| 
\num points here 
mov ax, word ptr num 

Когда вы писали эту mov ax, word ptr num вы эффективно попросили восстановить только самое низкое слово (2 байта) на "Num" адрес.
Вы получили 1-й байт 33h в AL и 2-й байт 04h в AH, объединенный в одном регистре: AX=0433h.

mov bx, word ptr num+2 

Это один работает аналогично, но вместо этого будет давать только самое слово.
Вы получите BX=090Fh

mov cl, byte ptr num+1 

Здесь вы попросили, чтобы получить только 2-й байт на "Num" адрес.
Вы получите CL=04h.

Смежные вопросы