2014-02-21 3 views
1

Если я сохраню значение, допустим, 10, в 8-битном регистре DH, а затем другое значение, 15, в регистре 8 бит DL. Будет ли это работать или они будут переопределять друг друга, так как они оба находятся в 32-битном регистре EDX?x86 использование частичного регистра

mov $10, %DH 
mov $15, %DL 
cmp %DL, %DH 

jle done 

В основном я просто растерялся, когда я использую 8-битный регистр, как это будет влиять на 32 разрядный регистр и наоборот. Спасибо.

Кроме того, вы можете сохранить значение 7 в EDX и и DL все равно будут иметь свои собственные значения или у них теперь будет 7?

ответ

6

DL является наименее значащими байтами DX и DH является наиболее значащим байтом DX. DX в свою очередь является наименее значимым словом EDX.

Итак:

MOV EDX,0x12345678 
; Now EDX = 0x12345678, DX = 0x5678, DH = 0x56, DL = 0x78 

MOV DL,0x01 
; Now EDX = 0x12345601, DX = 0x5601, DH = 0x56, DL = 0x01 

MOV DH,0x99 
; Now EDX = 0x12349901, DX = 0x9901, DH = 0x99, DL = 0x01 

MOV DX,0x1020 
; Now EDX = 0x12341020, DX = 0x1020, DH = 0x10, DL = 0x20 

Как вы можете видеть, вы можете написать DL или DH без них влияя друг на друга (но вы по-прежнему влияет на DX и EDX).


Кроме того, вы можете сохранить значение 7 в EDX и DH и DL будет по-прежнему имеют свои собственные ценности или же они теперь имеют 7?

Как вы можете вывести из моих примеров выше, DH бы получить значение 0 и DL значение 7.

2

Обратившись DH и DL по отдельности, то значения являются индивидуально доступными и храниться до тех пор, так как вы не выполняете операции, которые повлияют на другие части регистра.

Например

     EDX------ 
          DX -- 
          DH DL 
xor edx, edx ; edx = 0000 00 00 
mov 01h, dh ; edx = 0000 01 00 
mov 02h, dl ; edx = 0000 01 02 
sub dh, dl  ; edx = 0000 ff 01 <- Note that this doesn't 
       ; overflow to the high word, because you 
       ; are using only 8 bit registers 
mov 80000001, eax 
sub edx, eax ; edx = 8000 FF 03 <- Here you will affect 
       ; the whole register, because you address it with 32 bit. 
Смежные вопросы