汇编语言中 LEA DX,S MOV AH,9 INT 21H具体意思是什么,请大师指教。

汇编语言中 LEA DX,S MOV AH,9 INT 21H具体意思是什么,请大师指教。,第1张

LEA

DX,S

就是把变量s的地址(也就是字符串开始的地址)放到ds:dx中ds是段地址,dx是偏移。

MOV

AH,9

是指出调用是dos的9号功能,这个功能是显示一个以$结尾的字符串,$的ascii码是24h。

INT

21H

是调用dos中断。dos *** 作系统提供的功能大部分都放在int

21h中,你可以认为int

21h是你写的程序和dos内核的接口。

我猜你的问题是 movsb 和 lea 的关系吧?

我们先来看看 movsb 这个指令: movsb 指令必须配合 si,di 一齐使用,它会把 si 指向地方的数据复制到 di 所指向的地方, 每复制完一个字节,si,di 会自动进1,如是者直到cx=0为止。

lea si,buffer1 就是把buffer1里面第一个数据的地址放进 si, 那么 si 就是指向了 buffer1 的有效地址了。

lea di,buffer2, 也是同样道理。

希望回答是你所问的。

总的来看,LEA指令常被用作运算求值,要比mov、add、sub等指令搭配快速。

LEA opera1, opera2的本来作用是取opera2的地址,然后把这个地址赋给opera1。

既然这样,那如果我把opera2的形式写成”[address]“,很显然opera2的地址就是address,所以LEA会傻瓜似地把address这个数复制给opera1。

发现没有?这就好比是我们把一个计算公式address的运算结果复制给了opera1所以当遇到LEA eax, [ebx-3+4]时,其效果就是把ebx-3+4的计算结果赋给eax了。

以上就是关于汇编语言中 LEA DX,S MOV AH,9 INT 21H具体意思是什么,请大师指教。全部的内容,包括:汇编语言中 LEA DX,S MOV AH,9 INT 21H具体意思是什么,请大师指教。、LEA指令问题、汇编 LEA 指令,请高手帮我详细讲下。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9441070.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存