汇编指令问题!

来源:百度知道 编辑:UC知道 时间:2024/06/03 19:04:43
ADD DWORD PTR DS:[EAX],EAX

这是什么意思?
谁把每个字的意思解释清楚就给100分!
能把他等量变形就在追给你100分!

ADD DWORD PTR DS:[EAX],EAX
ADD 加法指令
DWORD 双字 4个字节 标识取数据的长度,因为是一个指针,所以要给定数据的长度
PTR 就是point 指针
DS:[EAX] 在内存DS:[EAX]指向地址处取双字长的数据。DS:[EAX]前面的DS(这里叫段跨越前缀)代表EAX所指向的数据在数据段,[EAX]表示EAX寄存器的内容(值),“DS:[EAX]”所代表的是所指向的这个内存地址的值(双字长,32位),也就是[数据段的段基址”+“[EAX](偏移量)]
EAX EAX寄存器

整句的意思是:在内存DS:[EAX]指向地址处取双字长的数据与EAX寄存器中的数据相加

大学都毕业了,忘完了!

ADD 不带进位加法指令,加数+被加数-->加数,于此相对的是ADC(带进位的加法指令,即两个加数和CF寄存器的内容相加)

DWORD 伪操作命令,用于定义数据为四字节

PTR 强制类型运算符,牵制说明某个地址表达式的属性(向后取几个字节),但不改变改地址表达式的原来属性

DS:[EAX],地址表达式,相当于指针,寄存器相对寻址,段地址是寄存器内容向左移四位得到,偏移量是寄存器EAX的内容,两者相加得到实际地址

EAX 32位累加寄存器

整条指令的实质是:DS:[EAX](相当于指针)指向的一个双字数据和EAX中的数据相加并送回DS:[EAX]指向的内存单元(四字节).

汗 我亏了 迟了一步