汇编语言中所有寄存器的作用

汇编语言中所有寄存器的作用越全越好... 汇编语言中所有寄存器的作用越全越好 展开
 我来答
心若初見
2018-07-12 · 超过28用户采纳过TA的回答
知道答主
回答量:45
采纳率:100%
帮助的人:28.2万
展开全部
寄存器有点多,介绍常用的,通用寄存器8个,EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,最后+eip+EFL;
eax多用于计算,函数的返回值等;
ecx多用于计数(count),比如循环中的那个计数,结合eax,ESI,edi。
ebp用于堆栈指针追踪,指低(debug版本),esp用于堆栈跟踪,多跟ebp一起使用(指向顶部,最高,也就是最前)。
esi,edi多用于复制内存。
eip就是固定作用了,CPU指令全靠它了,指那打哪。
efl就是标志寄存器了,16位就够用了,现在64位,完全空着呢,比如位溢出(两个计算数据太大溢出,不够减溢出),凡是条件(除了变态的jmp),无论if,while等,还是运算,或者符号位(数据是正还是负),或者数据检查,奇偶等,都是看它的。也就是说,无论CPU运算还是控制,都看它对应的不同位。
下面给你通用寄存器几个例子:假如eax的值为10,要将一块内存赋值为cc,循环10次,而EDI里面是内存地址的话,那么代码就是:mov EAX,0Xcc
mov ecx,0xa
rep stos byte ptr [edi]
这样,内存就全部被成为“ccccccccccccccccc”,这样的代码到处都是,尤其没有初始化之后,就能见到这样的CC,中文显示就是“烫烫烫”.
从一个内存赋值到另一个内存地址是这样的,假如esi是指针p1的地址,edi是指针p2的地址,那么*p2=*p1就是:
rep movs byte ptr es:[edi],byte ptr ds:[esi]
所以,edi,ESI,以及EBX,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式