码迷,mamicode.com
首页 >  
搜索关键字:jmp    ( 353个结果
Orange's笔记(1)
第一章写一个小的引导程序 代码: 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
《30天自制操作系统》笔记(13)——总结
当用户按下开机按钮,物理机能够加载BIOS指定的程序代码,并执行之。硬件电路就是这么设计好的。计算机自动加载的程序只有512字节,不够用来放OS程序。所以这512字节的程序就用来装载真正的OS程序到内存某处,然后JMP到该处执行OS程序。硬件电路提供了寄存器若干、加减乘除、中断机制、定时器、内存段属...
分类:其他好文   时间:2014-07-01 11:48:28    阅读次数:191
《30天自制操作系统》笔记(12)——多任务入门
上一篇介绍了设置显示器高分辨率的方法。本篇讲一下操作系统实现多任务的方法。操作系统利用CPU的far模式的JMP指令、寄存器TR、GDT、TSS和PIT中断这些功能实现了多任务,可见CPU在设计时就考虑到了计算机要具有多任务处理的能力。也就是说,CPU、PIC等硬件支持什么功能,操作系统才能实现什么...
分类:其他好文   时间:2014-06-22 23:30:24    阅读次数:369
8086汇编之 CALL 和 RET指令
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
setjmp()和longjmp()
C 语言没有异常处理机制,可以使用setjmp和longjmp进行模拟,另外,goto语句不能在函数间跳转,可以使用setjmp和longjmp完成函数间的跳转。 使用setjmp()函数需要包含头文件 setjmp()函数用于建立本地的jmp_buf缓冲区并初始化,用于将来跳转到这个地方。 longjmp()函数恢复jmp_buf变量所保存的信息,longjmp()之后返回setjmp()...
分类:其他好文   时间:2014-06-14 14:19:42    阅读次数:371
深入讨论ocruntime
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
《30天自制操作系统》笔记(03)——使用Vmware
在上一篇,实现了用IPL加载OS程序到内存,然后JMP到OS程序这一功能;并且总结出下一步的OS开发结构。但是遇到了真机测试和U盘启动的一些问题。本篇就来解决之。简单来说,把软盘(U盘)做成启动盘后,自然想要用来启动物理机器。毕竟这才是真正的测试。(用QEMU总没多大的成就感)但物理机测试的麻烦在于...
分类:其他好文   时间:2014-05-23 03:38:51    阅读次数:373
看书小记8(《C专家编程》)
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
353条   上一页 1 ... 33 34 35 36 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!