摘要: C与汇编代码的调用约定: 1. 后面的参数先入栈并且调用者负责还原堆栈 2. 被调用者通常要保持寄存器EBX,ESI,EDI,EBP,CS,DS,SS,ES的值,意思是如果使用了这些寄存器,要在返回时还原.3. 返回值整型使用EAX,64位使用EDX:EAX,指针使用EAX,浮点型使用st0. 4. 汇编的函数标号名根据编译环境使用或不使用下划线, GCC是不需要. 典型代码, Caller push dword 1 call subprogram add esp,4 Calleesubprogram label: push ebp mov ebp,esp ;code mov esp,ebp 阅读全文
posted @ 2011-04-10 23:19 十三 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 由于工作原因有时要在几种汇编格式之间切换,特记录一下几种汇编格式,以便自已能快速"恢复"记忆,这里只是描述一下基本的格式说明.一.MASM 1. 基本格式为: [标号:] 指令助记符 [DST [,SRC]] [;注释]2. 数据定义指令: DB 1 byte DW 2byte DD4 byte DT 8 byteDQ 10 byte 3.操作符PTR指明要访问的存储器操作数类型,格式为:类型 PTR 地址表达式 如 MOV WORD PTR [SL],1 类型可以是byte,word,dword,near,far二.NASM 总体格式和MASM差不多,做了更好的简化,个人 阅读全文
posted @ 2011-04-10 18:09 十三 阅读(956) 评论(0) 推荐(0) 编辑