我有下面的代碼:彙編MOV問題
mov ax,@data
mov ds,ax
爲什麼我不能寫只是這樣嗎?
mov ds,@data
所有來源:
.MODEL small
.STACK 100h
.DATA
HelloMessage DB 'Hello, world',13,10,'$'
.CODE
.startup
mov ax,@data
mov ds,ax
mov ah,9
mov dx,OFFSET HelloMessage
int 21h
mov ah,4ch
int 21h
END
謝謝!
+1你也可以說,不能用標準的'mov'指令修改'ds'的原因是在大多數指令中只保留3位來編碼目的寄存器,而ax,bx, cx,dx,si,di,sp,bp已經使用了所有可用的可能性。但那會簡化一些事情。 – 2010-09-11 08:10:41
是的,這是保持指令小的具體設計決定。 – starblue 2010-09-11 08:25:50
在這種情況下,'mov ds,ax'會進入嗎?我很確定這是一個'mov',用'ds'作爲目標寄存器;)你有一個合理的論點,我只是在玩! – Lazarus 2010-09-11 08:26:08