2, LDS Load pointer using DS) 格式: LDs reg16,mem32;(reg16)←(EA) (DS)←((EA)+2)) 功能:将指令指定32位地址指针送指令指定寄存器和DS。 将指令指定mem32单元的前两个单元内容(16位偏移量装入指 定通用寄存器,把后两个单元内容段地址)装入到DS段寄存 用于写远地址指针
2、LDS (Load pointer using DS) 格式:LDS reg16, mem32 ;(reg16)←(EA) (DS)←((EA)+2)) 功能:将指令指定32位地址指针送指令指定寄存器和DS。 将指令指定mem32单元的前两个单元内容(16位偏移量)装入指 定通用寄存器,把后两个单元内容(段地址) 装入到DS段寄存 器。 用于写远地址指针
例: 假设:(DS)=C000H 存储器 (DS) 指令: LDS SI,0010H C000H: 0010H 80H 01H 执行指令后: C0012H00H (SD=0180H C0013H20H (DS)=2000H
例: 假设: (DS)=C 000H 指令: LDS SI, [0010H] 执行指令后: (SI)=0180H (DS)=2000H 80H 01H 00H 20H C000H:0010H (DS) C0011H C0012H C0013H ... ... 存储器
3, LES CLod pointer using ES 格式: LES reg16,mem32 (regl6)←(EA (ES)←((EA)+2)) 功能:把源操作数指定的4个相继字节送指令指定的寄存器 及ES寄存器中 些指令常常指定D寄存器。 将指令指定mem32单元的前两个单元内容(16位偏移量装入 指定通用寄存器,把后两个单元内容(段地址)装入到ES段 寄存器。 用于写远地址指针
3、LES (Load pointer using ES) 格式:LES reg16, mem32 ;(reg16)←(EA) (ES)←((EA)+2)) 功能:把源操作数指定的4个相继字节送指令指定的寄存器 及ES寄存器中。 此指令常常指定DI寄存器。 将指令指定mem32单元的前两个单元内容(16位偏移量)装入 指定通用寄存器,把后两个单元内容(段地址) 装入到ES段 寄存器。 用于写远地址指针
例: 假设:(DS)=B000H 存储器 (BX)=080AH DS)(BX) B00OH: 080AH A2H 指令: LES DI,BX B080BH 05H 执行指令后 B080CH 00H (DI)=05A2H B080DH 40H (ES)=4000H
例: 假设: (DS)=B 000H (BX)=080AH 指令: LES DI, [BX] 执行指令后: (DI)=05A2H (ES)=4000H A2H 05H 00H 40H B000H:080AH (DS) B080BH B080CH B080DH ... ... 存储器 (BX)
存储器 综合举例: (DS) TABLE 设 5000H:1000H 40H (DS)=5000H 51001H00H TABLE=1O00H 51002H00H 51003H30H 分析下列指令执行结果 MOV BX TABLE ;(BX)=0040H MOV BX ,S TABLE (BX)=1000H LEA BX, TABLE (BX)=1000H LES BX, TABLE :(BX)=0040H,(ES)=3000H LDS BX, TABLE;(BX)=0040H (DS)3000H
综合举例: 设: (DS)=5000H TABLE=1000H 分析下列指令执行结果: MOV BX,TABLE ;(BX)=0040H MOV BX,OFFSETTABLE ;(BX)=1000H LEA BX,TABLE ;(BX)=1000H LES BX,TABLE ;(BX)=0040H,(ES)=3000H LDS BX,TABLE ;(BX)=0040H,(DS)=3000H 40H 00H 00H 5000H:1000H (DS) TABLE 51001H ... 存储器 30H ... 51002H 51003H