
汇编
pud_zha
这个作者很懒,什么都没留下…
展开
-
小知识点
1.sizeof,以字节为单位的长度 lengthof,其中的项数,并且参数必须是变量,不能是“关键字,变量类型”2.局部变量时用ebp来做指针操作。全局变量用offset.3.lea传送的地址,参数中可以做算术运算,简单的等同于move,如果比较复杂用mov就多步才能实现,lea一步实现mov传送的是内容 4.如果要在invoke伪指令的参数中用到局部变量的地址,用addr原创 2012-10-29 13:55:43 · 467 阅读 · 0 评论 -
_emit
_emit x用来插入一段二进制,可能是指令,也可能是数据原创 2012-10-27 13:58:05 · 408 阅读 · 0 评论 -
汇编优化
Assembly Optimization Tips汇编优化提示【作者】:Mark Larson【翻译】:Dhuta暑假瞄了一些汇编优化的文章,感觉这篇有点意思。尽管英文水平不咋地,还是倔起牛劲翻译了下。肯定有不好的地方,大家海涵~英文原文附件给出~如果有什么错误还望批评指正~另外,如果admin感觉可以加精的话就麻烦下了~一段时间过去了,增加一点内容。《怎样优化Penti转载 2012-08-27 18:38:39 · 3201 阅读 · 0 评论 -
CBW、CWDE、CDQ、CWD: 扩展指令
CBW、CWDE、CDQ、CWD: 扩展指令;CBW(Convert Byte to Word): 将 AL 扩展为 AX;CWDE(Convert Word to Extended Double): 将 AX 扩展为 EAX;CDQ(Convert Doubleword to Quadword): 将 EAX 扩展为 64 位数 EDX:EAX;CWD转载 2012-08-24 15:39:20 · 21211 阅读 · 0 评论 -
汇编语言中PTR的含义及作用
mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,所以没有必要加“WORD” mov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出!所以,当两个操作数的宽度不一样时,就要用到ptr。也就是说转载 2012-08-14 10:29:40 · 1700 阅读 · 0 评论 -
C++与汇编
1.指针 任何指针对汇编而言都是一样的,只不过在操作的时候才有区别 mov byte ptr [eax],2 mov dword ptr [ecx],4019999Ah 2.指针和引用汇编层是一样的004012FB lea ecx,[ebp-4] 004012FE push原创 2012-08-13 18:12:05 · 705 阅读 · 0 评论 -
CMP指令详解
刚刚看到了cmp指令,一开始有点晕。后来上网找了些资料,终于看明白了,为了方便初学者,我就简单写下我的思路吧。高手绕过,谢谢!cmp(compare)指令进行比较两个操作数的大小例:cmp oprd1,oprd2为第一个操作减去第二个操作数,但不影响第两个操作数的值它影响flag的CF,ZF,OF,AF,PF我们怎么判断大小呢?若执行指令后转载 2012-08-11 17:50:40 · 27509 阅读 · 1 评论 -
寄存器
这里对这几个寄存器总结一下。通用寄存器的主要用途寄存器的分类寄存器主 要 用 途通用寄存器数据 寄存器AX乘、除运算,字的输入输出,中间结果的缓存AL字节的乘、除运算,字节的输入输出,十进制算术运算转载 2012-07-31 14:27:51 · 846 阅读 · 0 评论