第一章写一个小的引导程序 代码: 1 org 07c00h 2 mov ax,cs 3 mov ds,ax 4 mov es,ax 5 call DispStr 6 jmp $ 7 DispStr: 8 ...
分类:
其他好文 时间:
2014-07-03 09:09:16
阅读次数:
264
当用户按下开机按钮,物理机能够加载BIOS指定的程序代码,并执行之。硬件电路就是这么设计好的。计算机自动加载的程序只有512字节,不够用来放OS程序。所以这512字节的程序就用来装载真正的OS程序到内存某处,然后JMP到该处执行OS程序。硬件电路提供了寄存器若干、加减乘除、中断机制、定时器、内存段属...
分类:
其他好文 时间:
2014-07-01 11:48:28
阅读次数:
191
上一篇介绍了设置显示器高分辨率的方法。本篇讲一下操作系统实现多任务的方法。操作系统利用CPU的far模式的JMP指令、寄存器TR、GDT、TSS和PIT中断这些功能实现了多任务,可见CPU在设计时就考虑到了计算机要具有多任务处理的能力。也就是说,CPU、PIC等硬件支持什么功能,操作系统才能实现什么...
分类:
其他好文 时间:
2014-06-22 23:30:24
阅读次数:
369
Ret 和 call 也是转移指令,但是他们跟jmp不同的是,这两个转移指令都跟栈有关系。
ret
用栈中的数据修改IP的地址,从而实现近转移
( ip ) = ( (ss)*16+ sp )
( sp ) =( sp ) + 2
相当于pop ip
retf
用栈中的数据来修改CS以及IP的值,实现段间转移
( ip ) = ( (ss)*16+ sp )
( sp ) =...
分类:
其他好文 时间:
2014-06-22 20:14:23
阅读次数:
151
能修改CS以及IP的指令都是转移指令。它分为段内转移,段间转移。
段内转移:只修改IP的值
段间转移:同时修改CS以及IP的值
段内转移根据转移的距离远近分为:短转移,近转移
短转移:转移范围为-128 – 127
近转移:转移范围为-32768 –32767
根据转移情况又分为:
无条件转移指令
条件转移指令
循环指令
过程
中断
jmp short...
分类:
其他好文 时间:
2014-06-18 07:21:15
阅读次数:
189
C 语言没有异常处理机制,可以使用setjmp和longjmp进行模拟,另外,goto语句不能在函数间跳转,可以使用setjmp和longjmp完成函数间的跳转。
使用setjmp()函数需要包含头文件
setjmp()函数用于建立本地的jmp_buf缓冲区并初始化,用于将来跳转到这个地方。
longjmp()函数恢复jmp_buf变量所保存的信息,longjmp()之后返回setjmp()...
分类:
其他好文 时间:
2014-06-14 14:19:42
阅读次数:
371
oc是一门全动态语言,oc的一切都是基于runtime实现的。
为了能正确理解runtime,我们首先来由其他的语言引出动态的oc。
1.传统的面相过程的语言开发,例如c语言,编译器做到的是:把一份代码里的函数名称,转化为一个相对的内存地址,把调用这个函数的语句转换成一个jmp跳转指令,在...
分类:
其他好文 时间:
2014-06-07 03:48:20
阅读次数:
1000
#include#include// 自己构造mov指令更改变量值int
val,address;char *func() //构造mov addr,val指令 与jmp指令{ char
*code,*pMov,*pAddr,*pJmp; code=(char *)malloc(1...
分类:
其他好文 时间:
2014-05-25 19:13:58
阅读次数:
187
在上一篇,实现了用IPL加载OS程序到内存,然后JMP到OS程序这一功能;并且总结出下一步的OS开发结构。但是遇到了真机测试和U盘启动的一些问题。本篇就来解决之。简单来说,把软盘(U盘)做成启动盘后,自然想要用来启动物理机器。毕竟这才是真正的测试。(用QEMU总没多大的成就感)但物理机测试的麻烦在于...
分类:
其他好文 时间:
2014-05-23 03:38:51
阅读次数:
373
int setjmp(jmp_buf env);
void longjmp(jmp_buf env, int val);
系统跳转函数 ,可以直接在函数之间跳转 (比goto 强大多了)
将上下文 ,就是cpu和内存的信息保存到env中 ,然后调用 longjmp的时候跳转到使用env中的信息 ,恢复上下文 。如果是第一回调用setjmp 它会返回 0,如果从longjmp ...
分类:
其他好文 时间:
2014-05-22 23:52:21
阅读次数:
425