汇编语言 LES和LDS的问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 02:10:04
1、(DS)=0C 000H
指令 LDS SI, [0010H]
执行指令后:
(SI)=0180H
(DS)=2000H

2、设 (DS)=B 000H
(BX)=080AH
指令 LES DI, [BX]
执行指令后:
(DI)=05A2H
(ES)=4000H
两个程序如上,请高手指教,希望给出详细的解答过程说明LES和LDS的用法,谢谢。急!

你那个例子是哪的?条件不足啊
我把书上的例子给你抄一下:
LES DI,[BX]
如指令执行前(DS)=B800H,(BX)=080AH,(0B080AH)=05AEH,(0B080CH)=4000H.
则指令执行后(DI)=05AEH,(ES)=4000H.

书上的解释:
格式:
LDS REG,SRC
执行操作:
(REG)←(SRC)
(SREG)←(SRC+2)
就是把SRC指向的那个内存里的数放到REG里,然后把SRC+2里的数据放到段寄存器里(LDS就放到DS里,LES就放到ES里,其他同理)

mov ax,0c00h ;设ds=0C00H
mov ds,ax
mov bx,0010h
mov [bx],0180h ;[BX]中存si值,[BX+2]中存ds值
mov [bx+2],2000h]
lds si,ds:[0010h] ;ds:[0010h]=[bx]
;DS:BX = 0c00h:0010h 01 80 00 20;内存中0C00:0010 01 80 00 20
mov ax,0B000H ;设ds=0B000H
mov ds,ax
mov bx,080AH
mov [bx],05A2H ;[BX]中存di值,[BX+2]中存es值
mov [bx+2],4000H
les Di,[bx]
;DS:BX = B000H:080AH A2 05 00 40;内存中B000H:080AH A2 05 00 40