求懂【汇编】解答LDS和LES指令!
发布网友
发布时间:2022-04-19 14:43
我来回答
共3个回答
热心网友
时间:2023-07-13 19:27
没出错,对于第一题,DS是C000H,偏移量是10H,计算:C000H*10+10H=C0010H,LDS将该地址的低16位数存入SI中,高16位数存到DS中,从而得到SI=0180,而DS得到2000H;
对于第二题,LES指令的功能是把内存中指定位置的双字操作数的低位字装入指令中指定的寄存器、高位字装入ES寄存器,同样,计算:B000H*10+080AH=0B080AH,将该地址的低位字送入DI寄存器中,而将高位字送入ES中,从而得到DI=05AEH,ES=4000H追问谢谢你啦!就是我一直搞不懂,它属于地址传送指令,传的却是一个地址下的内容……
热心网友
时间:2023-07-13 19:27
结果是正确的。两个指令的功能如下:
LDS reg,src ; 功能:(reg)<--(src),(DS)<--(src+2)
LES reg,src ; 功能:(reg)<--(src),(ES)<--(src+2)
都是把连续2个地址下的内容作为地址传送给SI和DS、DI和ES,就是“传地址”追问哦!~那这和直接用2个mov传递内容,有什么区别?
追答就是相当于用了两个mov
热心网友
时间:2023-07-13 19:27
lds 指令本质上是获取,指定地址处的值,如LDS SI,[10H] 如指令执行前:(DS)=C000H,(C0010H)=0180,(C0012H)=2000H 执行后:(SI)=0180H,(DS)=2000H。其实就是把c0010h处的值(也成为内容)传给si,把C0012H的值2000H,传给ds.就32位而言,相当于,取得某地址处的变量值。比如dim x as int 32.假如x在内存中地址是1000000h,dim y as int32=x,把x的值取出来,给了y。而执行lds ebx,[1000000h],则是把变量x的值传给了ebx.
在16位下,执行LDS SI,[10H]后,(DS)=2000H,相当于把内容2000h当做地址,传给ds,以后数据段的首地址就是2000h了,不再是原来的值了。因此,此指令可以改变数据段的地址。
求懂【汇编】解答LDS和LES指令!
没出错,对于第一题,DS是C000H,偏移量是10H,计算:C000H*10+10H=C0010H,LDS将该地址的低16位数存入SI中,高16位数存到DS中,从而得到SI=0180,而DS得到2000H;对于第二题,LES指令的功能是把内存中指定位置的双字操作数的低位字装入指令中指定的寄存器、高位字装入ES寄存器,同样,计算:B...
STM32F103C8T6的基本参数有哪些?
透过STM32您的嵌入式应用将得益于意法半导体优秀的产品架构、技术、多源产地和全方位支持。意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM Cortex-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微...
汇编语言 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就...
汇编语言中,隐含寄存器的指令是哪些?
1,LDS 隐含把源操作数的段值送到DS。2,LES 隐含把源操作数的段值送到ES。3,LAHF 隐含把标志寄存器的低8位,送到寄存器AH指定位。4,SAHF 隐含把寄存器AH的相关位,送到标志寄存器的相应位。5,PUSHF 隐含把标志寄存器的所有位压入堆栈。6,POPF 隐含把堆栈的当前栈顶数值弹出,并送到标志寄存...
汇编指令详解
LEA (Load Effective Address) 有效地址送寄存器指令 LDS(Load DS with pointer) 指针送寄存器和DS指令 LES(Load ES with pointer) 指针送寄存器和ES指令 LAHF(Load AH with Flags) 标志位送AH指令 SAHF(Store AH into Flgs) AH送标志寄存器指令 ADD 加法...
关于汇编 LDS 的问题 请教
两个指令的功能如下:LDS reg,src ; 功能:(reg)<--(src),(DS)<--(src+2)LES reg,src ; 功能:(reg)<--(src),(ES)<--(src+2)所以 LDS SI,[BX][DI]SI<-DS+[BX]+[DI]:SI指向ds段,位移量为[bx]+[di]DS<-[SI+2][SI]<-BX:SI存放bx的地址 ...
汇编指令集…要具体详细!
3. 目的地址传送指令. LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX. LDS 传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI. LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI. LFS 传送目标指针,把指针内容...
LDS和LES在32位模式下,源数据是怎么赋值的,长度是多少?
用DEBUG32来试,确实如你所说,不用怀疑。我用的DS:0100处为12 34 56 78 9a bc de f0,执行后ESI=78563412,DS=bc9a
汇编语言(指令系统)
- LDS/LES:针对DS和ES段寄存器的指令,操作同样不改变标志位。标志位处理- PUSHF/POPF:执行这些指令时,标志位会被压入或从堆栈中恢复,但操作本身不会影响标志位。- 算数运算指令: - ADD、ADC、SUB、SBB:加减法操作,会根据运算结果改变标志位。 - INC/DEC:简单加减一,除CF外其他标志位...
arm汇编指令有哪些?
DEC( DECrement ) 减1指令 传送指令 包括通用数据传送指令MOV、条件传送指令CMOVcc、堆栈操作指令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令XCHG/XLAT/BSWAP、地址或段描述符选择子传送指令LEA/LDS/LES/LFS/LGS/LSS等。逻辑运算 这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB...
求汇编语言的所有指令?
LEA,LDS,LES 功能: 取地址至寄存器 语法: LEA r,m LDS r,m LES r,m XLAT(XLATB)功能: 查表指令 语法: XLAT XLAT m 算数运算指令 ADD,ADC 功能: 加法指令 语法: ADD OP1,OP2 ADC OP1,OP2 格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data 影响标志: C,P,A,Z,S,O SUB,SBB 功...