| 过两天要汇编上机考了今天总结一点东西 关于寄存器:分为四类通用寄存器特殊目的寄存器段寄存器以及特殊目的的核心模式寄存器学校是安装8086/8088模式教的其实在三二位的操系统上段寄存器已经不太常用了 注意补码补码不可以对最小的负数再取负数表示范围是 -2^n~~~2^n -1, 指针究竟是怎么回事情,高级语言往往把指针的简单定义隐藏在抽象中,指针只是一个存贮单元她所存贮的值是另一个存贮单元的地址(或者索引) 函数参数传递:安值传递会产生一个副本也就是又复制了一份,在过程中无论做了什么都不会对值产生影响 引用传递传的是地址.数据规模小的时候按值快 数据规模大的时候引用快 call 语言首先将紧跟在call指令以后的地址压入栈顶然后将控制指针指向调用过程的地址 ret 指令从栈顶部弹出返回地址并将控制指针间接地指向这个地址 其实所谓的溢出程序也是从这个地方做文章的有机会大家再谈谈 一般不用esp而是用ebp来控制栈的工作 进口 push ebp mov ebp, esp sub esp,12 and $ffff fffc ,esp (注意二进制情况下的这种技巧可以取余数又可以变成莫个数的倍数 取mod 8:and(%111,al)) 出口 mov esp ebp pop ebp ret() 暂时就这些了大家如果学好了汇编以后再回过头去看高级语言比如说c++会对高级语言有更深刻的了解的 我通过汇编学习对计算机系统有了更深刻更清晰的认识我觉得我学汇编的目的基本达到了欢迎大家和我讨论
|