複製鏈接
請複製以下鏈接發送給好友

LDS

(彙編語言指令形式)

鎖定
LDS,是一條彙編語言指令形式,操作包括DEST=WORD PTR [SRC]。
中文名
彙編語言指令
外文名
LDS
釋    義
一條彙編語言指令形式
執行操作
DEST=WORD PTR [SRC];
DS=WORD PTR [SRC+2];
特別説明:WORD的意思是字,PTR的意思是指針,合起來的意思就是字指針。也就是説WORD PTR[SRC]意思是SRC所指向的內存地址為2個字節(一個字就是2個字節)。
指令格式:LDS REG,MEM
顯而易見:DEST需要兩個字節,DS也要兩個字節,那麼MEM肯定是指向4個字節的內存了。4個字節就是雙字(Double Word)
假定1000:10F0開始存放了4個字節
1000:10F0 78
1000:10F1 56
1000:10F2 34
1000:10F3 12
它們是倒着存放的-_-
(E1000:10F0回車,78空格56空格34空格12空格回車。然後可以U1000:10F0看看寫對了沒)
然後用DEBUG的A指令寫入彙編指令(如果是前面先執行過跟蹤,別忘了RIP回車再100回車,將指令指針復原)
MOV AX,1000
MOV DS,AX ;段寄存器不可以直接寫的,有點麻煩-_-
LDS BX,[10F0]
跟蹤可以發現,最後DS=1234;BX=5678
MOV AX,1000
MOV DS,AX
LDS BX,[10F0]
這些指令可以換成
MOV AX,1000
MOV ES,AX
ES:
LDS BX,[10F0]
效果一樣。
不過我調試了一下,先寫了1000:10F0的內存再寫彙編指令的話老是彙編出錯。不知道哪裏的毛病。
如MOV AX,1000的機器碼是B80010;可是寫好了再用U反彙編看一下機器碼變成了C70A1000。
懶的去調了。就先寫了彙編指令然後寫內存。跟蹤一下。當前學習的是LDS指令
LES指令
指令形式:LES DSET,SRC
指令格式:LES REG,MEM
所執行的操作:
DEST=WORD PTR[SRC]
ES=WORD PTR[SRC+2]