![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 65
m2o2o2d
为无知而求知。
展开
-
x86参数传递规则
1.函数调用者必须在ccallee返回之后清理堆栈。2.每个函数拥有固定数量的参数,这意味着被调用函数可以在一个地方对参数进行清理,即在被调用函数内部进行堆栈参数的清理,而不是分散在每一次调用该函数的代码中。3.以下是调用过程: 1)将参数从右到左压入堆栈:参数从右到左依次压入堆栈,每次压入一个。调用者(caller)必须明确有多少Byte的参数,以便函数原创 2014-03-21 20:52:57 · 7696 阅读 · 0 评论 -
ubuntu上安装nasm以及nasm在ubuntu上的简单使用
1、在ubuntu上安装nasm方法首先在网站http://www.nasm.us/pub/nasm/releasebuilds/2.10.07/下面去下载2.10.07.tar.gz这个版本(一般在ubuntu上面都是使用这个压缩形式的)。如果要下其他版本的nasm可以通过http://www.nasm.us/来进行选择进行下载。2、安装方法:使用如下的命令:解压:tar转载 2014-01-24 14:29:16 · 991 阅读 · 0 评论 -
int 0x80系统调用的参数传递规则
系统调用的参数传递规则:传递给系统调用的参数则必须按照参数顺序依次存放到寄存器ebx,ecx,edx,esi,edi中,当系统调用完成之后,返回值存放在eax中;A.当系统调用所需参数的个数不超过5个的时候,执行"int$0x80"指令时,需在eax中存放系统调用的功能号,传递给系统调用的参数则按照参数顺序依次存放到寄存器ebx,ecx,edx,esi,edi中,当系统调用完成之后,返回值转载 2014-03-20 21:26:40 · 3854 阅读 · 0 评论 -
windows下安装、配置gcc编译器
在Windows下使用gcc编译器:1.首先介绍下MinGWMinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。 实际上 MinGW 并不是一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比转载 2014-03-20 22:03:35 · 617 阅读 · 0 评论 -
汇编指令积累(长期)
cmp ecx,5cmovl eax,ebxcmp:比较,比较ecx和5,并设置标志位,其他指令通过识别被影响的标志位来得知比较结果。cmovl:小于传送,如果ecx原创 2014-03-21 20:18:18 · 1708 阅读 · 2 评论 -
Ubuntu下用汇编编写Hello,world
1.代码hello.asm;编译链接方法;(ld 的'-s'选项意为“strip all”);;$ nasm -f elf hello.asm -o hello.o;$ ld -s hello.o -o hello;$./hello;Hello,OS;$[section .data] ;数据在此strHello db "Hello, world",0AhST原创 2014-03-14 23:36:37 · 4085 阅读 · 0 评论 -
80X86汇编指令符号大全
+、-、*、/∶算术运算符。 &∶宏处理操作符。宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个& 记号,宏汇编程序就能够用实在参数代替这个形式参数了。 $∶地址计数器的值——记录正在被汇编程序翻译的语句地址。每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。 ?∶操作数。在数据定义语句中,操作数用?,其作用转载 2014-03-20 16:35:08 · 950 阅读 · 0 评论 -
基址与分段寻址—32位寄存器的变化
基址、分段寻址、段寄存器、32位寄存器到底有什么联系呢?原创 2014-04-18 15:59:55 · 1696 阅读 · 0 评论 -
BIOS简述
BIOS(Basic Input Output System,基本输入输出系统)=================================================================1.它是一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序、系统设置、开机后自检程序和系统自启动程序。2.主要功能是为计算机提供最底层的、最直原创 2014-03-21 15:27:03 · 885 阅读 · 0 评论 -
Ubuntu下用gcc与nasm联合编译
1.代码foo.asm;编译链接的方法;(id的'-s'选项意为"strip all");;$ nasm -f elf foo.asm -o foo.o;$ gcc -c bar.c -o bar.o;$ id -s hello.o bar.o foobar;$ ./foobar;the 2nd one;$extern choose ;int choose(int a原创 2014-03-20 01:24:26 · 2189 阅读 · 0 评论 -
32位CPU寄存器
【32位CPU所含有的寄存器】4个数据寄存器:EAX、EBX、ECX、EDX)2个变址和指针寄存器:ESI、EDI2个指针寄存器:ESP、EBP 6个段寄存器:ES、CS、SS、DS、FS、GS1个指令指针寄存器:EIP1个标志寄存器:EFlags1、数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。 3转载 2014-03-21 17:54:35 · 592 阅读 · 0 评论 -
汇编-代码解释集合
【汇编代码】extern:EXTERN 伪操作告诉编译器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源文件中可能引用该符号。如果本源文件没有实际引用该符号,该符号将不会被加入到本源文件的符号表中。global:关键字,把符号导出到其他模块中。global是extern的对立面,如果一个模块声明一个extern的符号,然后引用它,为了防止链接错误,另外某一个模块必须确实定原创 2014-03-20 21:10:44 · 3001 阅读 · 1 评论 -
Ubuntu下用bochs编译简单操作系统
1.代码boot.asm org 07c00h ;告诉编译器程序加载到7c00处 mov ax,cs mov ds,ax mov es,ax call DispStr ;调用显示字符串例程 jmp $ ;无限循环DispStr: mov ax,BootMessage mov bp,ax ;ES:BP=串地址 mov cx,16 ;CX=串长度 mov ax,0原创 2014-03-20 10:07:06 · 1088 阅读 · 0 评论 -
virtualBox中安装ubuntu重启异常问题
[问题描述]在virtualBox中安装ubuntu,安装完毕后点击重启,出现异常,如下图,重新启动后又要重新安装。[问题原因]安装完成后(重新启动前)已经生成了.vdi文件系统,所以需要把虚拟光驱卸载,相当于把安装盘取出来,不然会一直装装装哒~[解决方案]1.打开virtualBox—〉设置—〉存储,选择“控制器:IDE”下的虚拟光驱点击右原创 2014-01-24 13:03:34 · 5483 阅读 · 0 评论