发布网友 发布时间: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;
热心网友 时间:2023-07-13 19:27
结果是正确的。两个指令的功能如下:追答就是相当于用了两个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.