饭后温柔

汉堡与老干妈同嚼 有可乐味
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年8月6日

摘要: 非正式定义为以返回语句结束的命名语句块.使用PROC和ENDP伪指令声明,必须制定一个有效的名字(标识符).如: samplePROC ... ret sample ENDP程序启动过程之外的其他过程应以RET指令结束.强制CPU返回过程被调用的地方. 启动过程(main)是特例.必须调用终止程序运行的系统函数. main PROC ... INVOKE ExitProcess, 0 main ENDP CALL和RET指令 CALL指令把返回地址压入堆栈并把被调用过程的地址复制到指令指针寄存器EIP. RET总堆栈中弹出返回地址并送到EIP.保存和恢复寄存器USES操作... 阅读全文

posted @ 2013-08-06 15:25 饭后温柔 阅读(229) 评论(0) 推荐(0) 编辑

摘要: 运行时栈 由cpu管理的内存数组. 使用SS,ESP寄存器. 保护模式下,SS存放段选择子. ESP指向堆栈内的32位偏移地址. ESP寄存器通常由CALL,RET,PUSH,POP等指令间接修改. 向下增长的堆栈.ESP指向栈顶.压栈push,地址减.出栈pop地址增. 一般用途: 寄存器做多种用途时,堆栈作为寄存器值的临时保存区域. CALL指令,CPU用堆栈保存当前被调用过程的返回地址. 调用过程时,通过压栈传递输入值. 过程内的局部变量在堆栈上创建,过程结束时丢弃. PUSH指令 首先减小ESP值,再把源操作数复制到堆栈. PUSH r/m16 PUSH... 阅读全文

posted @ 2013-08-06 13:34 饭后温柔 阅读(570) 评论(0) 推荐(0) 编辑