assembly
文章平均质量分 60
sinzou1
这个作者很懒,什么都没留下…
展开
-
缺省返回值位置;BP与SP
<br />1、<br />x86上,一般整数类型的返回值放在 eax, float 类型的防在浮点数寄存器里。如果返回的对象比较大,放在堆栈里。<br />2、<br />bp为基址寄存器,一般在函数中用来保存进入函数时的sp的栈顶基址<br />sp是栈顶指针,它每次指向栈顶。<br />每次子函数调用时,系统在开始时都会保存这个两个指针并在函数结束时恢复sp和bp的值。像下面这样:<br />在函数进入时:<br />push bp //保存bp指针<br />mov bp,sp //将sp指针传给原创 2010-09-12 11:29:00 · 826 阅读 · 0 评论 -
《自己动手写操作系统》开发环境的安装
最近一直在用windows,为了配置环境又装了Xp。环境配置:Virtual PC 5.2+MSodc6.22工具:windows下的NASM(nasm-0.99.04-win)和随书光盘中一些工具说明:Virtual PC 5.2汉化版是最好的选择,Virtual 2007可以装dos,但是却不能共享文件夹,《自己动手写操作系统》中作者的平台是virtual pc 5.01.安装Virtual PC 5.2vpc 5.2 完整名称叫Connectix Virtual PC 5.2,后来被microsoft转载 2010-09-12 21:37:00 · 681 阅读 · 0 评论 -
标志寄存器
<br />CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有三种作用:<br />1) 用来存储相关指令的某些执行结果;<br />2) 用来为CPU执行相关指令提供行为依据;<br />3) 用来控制CPU的相关工作方式。<br /> <br />这种特殊的寄存器在8086CPU中,被称为标志寄存器。8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。简称flag。<br />flag和其他寄存器不一样,其他寄存器是用来存放数据的,都是整原创 2010-10-21 22:04:00 · 6421 阅读 · 0 评论 -
AT&T汇编
开发一个OS,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇编可以缩小目标代码的Size。另外,对于某些需要被经常调用的代码,使用汇编来写可以提高性能。所以我们必须了解汇编语言,即使你有可能并不喜欢它。 如果你是计算机专业的话,在大学里你应该学习过Intel格式的8086/80386汇编,这里就不再讨论。如果我们选择的OS开发工具是GCC以及GAS的话,就必须了解AT&T汇编语言语法,因为GCC/GAS只支持转载 2010-10-22 22:48:00 · 683 阅读 · 0 评论 -
GNU ARM 汇编快速入门
<br />ARM汇编语言源程序语句,一般由指令,伪操作,宏指令和伪指令作成.ARM汇编语言的设计基础是汇编伪指令,汇编伪操作和宏指令. <br /><br />目前常用的ARM编译环境有2种:<br />ARMASM: ARM公司的IDE中使用了CodeWarrior的编译器,绝大多数windows下的开发者都在使用这一环境,完全按照ARM的规定; <br />GNU ARM ASM: GNU工具的ARM版本,与ARMASM略有不同; <br /><br />关于CodeWarriror转载 2010-10-29 22:11:00 · 894 阅读 · 0 评论