摘要: 直接 call / jmp 目标 code segment 不能改变当前的 CPL,若要 call / jmp 高权限的 code segment 必须使用 call gate,在 x86 下还要可以 call / jmp TSS descriptor 或者 call / jmp task gate... 阅读全文
posted @ 2015-01-29 17:50 Acg!Check 阅读(505) 评论(0) 推荐(0)
摘要: 指令: call 0x20:00000000 jmp 0x20:00000000----------------------------------- selector 0x20 是个 TSS descriptor 的 selector。 TSS descriptor 与 segme... 阅读全文
posted @ 2015-01-29 17:45 Acg!Check 阅读(572) 评论(0) 推荐(0)
摘要: 指令: call 0x20:00000000 jmp 0x20:00000000 -----------------------------------selector 0x20 是个 task gate 的 selector 这里使用 task gate 任务切换与使用 TSS selec... 阅读全文
posted @ 2015-01-29 17:44 Acg!Check 阅读(451) 评论(0) 推荐(0)
摘要: IDT(Interrupt Descriptor Table)仅能存放 interrupt-gate、trap-gate 和 task-gate。指令: int 0x80 ----------------------------------- 0x80 是 vector (中断向量号) ... 阅读全文
posted @ 2015-01-29 17:38 Acg!Check 阅读(261) 评论(0) 推荐(0)
摘要: 《80x86汇编语言程序设计》保护模式第一个例题的一些个人理解和注释; 16位偏移的段间直接转移指令的宏定义 02.jump macro selector, offsetv 03. 04. db 0eah ; jmp far 的操作码 05. dw... 阅读全文
posted @ 2015-01-29 11:37 Acg!Check 阅读(366) 评论(0) 推荐(0)
摘要: bochs调试FAQ:1. Q:如何从引导扇区开始设置断点?A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址是一一对应的,所以我们可以在启动bochs调试的命令行下输入 pb 0x7c00或者 vb 0:0x7c00就着输入 cbochs就会... 阅读全文
posted @ 2015-01-29 11:33 Acg!Check 阅读(536) 评论(0) 推荐(0)
摘要: 杨季文 80X86汇编语言程序 P352,子程序 DIVX ,使用移位和减法进行除法运算,尝试举例验证之。程序如下:;子程序名:DIVX;功 能:64 位数除以32 位数,商用64 位表示;入口参数:EDX:EAX=被除数; EBX=除数;出口参数:EDX:EA... 阅读全文
posted @ 2015-01-29 11:31 Acg!Check 阅读(273) 评论(0) 推荐(0)
摘要: 刚看到这例子是纠结了……编译不过啊,google后看到不少人便不过……后来经过一番查询,找到了编译方法用masm615编译:除了在例子里连接必要的lib文件外,就是设置masm615的环境变量了,pach里增加masm615的目录,include(没有新建)中增加include的目录,lib中增加l... 阅读全文
posted @ 2015-01-29 11:30 Acg!Check 阅读(185) 评论(0) 推荐(0)
摘要: 最经看《80x86汇编语言程序设计》杨季文等著,里面的保护模式的例子无法调试,后来查到bochs可以调试,就折腾了一番,这里写下吧……>>>>>>>>>>>>>>>>>>>>>>>无耻的分割线>>>>>>>>>>>>>>>>>>>>>>>>下载地址:Bochs:http://bochs.source... 阅读全文
posted @ 2015-01-29 11:29 Acg!Check 阅读(2227) 评论(0) 推荐(1)
摘要: 来源:http://blog.chinaunix.net/u1/58640/showart.php?id=1354073记下来以备不时之需。1. char * const p;char const * pconst char *p上述三个有什么区别?char * const p; //常量指针,p的... 阅读全文
posted @ 2015-01-29 11:27 Acg!Check 阅读(365) 评论(0) 推荐(0)
摘要: 不要使用while (条件)更不要使用while (组合条件)要使用while (1) { if (条件1) break; //... if (条件2) continue; //... if (条件3) return; //... }因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映... 阅读全文
posted @ 2015-01-29 11:26 Acg!Check 阅读(204) 评论(0) 推荐(0)
摘要: 一、简介: 伸展树,或者叫自适应查找树,是一种用于保存有序集合的简单高效的数据结构。伸展树实质上是一个二叉查找树。允许查找,插入,删除,删除最小,删除最大,分割,合并等许多操作,这些操作的时间复杂度为O(logN)。由于伸展树可以适应需求序列,因此他们的性能在实际应用中更优秀。 伸展树支持所有的二叉... 阅读全文
posted @ 2015-01-29 11:22 Acg!Check 阅读(285) 评论(0) 推荐(0)
摘要: 网上看到的,不是C的,改成了C的……===========================一. 方法原理当从一个给定的序列数组arr中, 查找某个特定值value时, 折半搜索法是这样做的:1. 确定搜索范围的起始点: 起点start = 0, 终点end = 数组长size – 1;2. 根据起始... 阅读全文
posted @ 2015-01-29 11:14 Acg!Check 阅读(172) 评论(0) 推荐(0)
摘要: 二个异符号数相加,OF=0 二个同符号数相加,结果与加数符号不同,OF=1 二个同符号数相减,OF=0 二个异符号数相减,结果与减数符号相同,OF=1==============================================在 rflags 寄存器里的下... 阅读全文
posted @ 2015-01-29 11:13 Acg!Check 阅读(832) 评论(0) 推荐(0)
摘要: 菜菜……我的想法:让后者的next连接前者…… 1 #include 2 #include 3 4 struct List 5 { 6 int number; 7 struct List * next; 8 }; 9 10 struct List * rever... 阅读全文
posted @ 2015-01-29 11:10 Acg!Check 阅读(109) 评论(0) 推荐(0)
摘要: 转自:http://atu82.bokee.com/6706799.html 结构体嵌套结构体名前一段时间在看DDK中例子的时候,看到这样的的结构体定义:typedef struct _COMMON_DEVICE_DATA { PDEVICE_OBJECT Self; BOOLEA... 阅读全文
posted @ 2015-01-29 11:05 Acg!Check 阅读(476) 评论(0) 推荐(0)
摘要: 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类... 阅读全文
posted @ 2015-01-29 11:02 Acg!Check 阅读(329) 评论(0) 推荐(0)
摘要: //在堆中开辟一个4×5的二维int数组 2.#include 3.#include 4.int **p; 5.int i,j; 6.void main() { 7. p=(int **)malloc(4*sizeof(int *)); 8. if (NULL==p) ... 阅读全文
posted @ 2015-01-29 10:57 Acg!Check 阅读(149) 评论(0) 推荐(0)
摘要: 转自:http://blog.csdn.net/hairetz/article/details/4084088写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧./*******************... 阅读全文
posted @ 2015-01-29 10:53 Acg!Check 阅读(231) 评论(0) 推荐(0)
摘要: 转自《汇编语言》论坛这儿争论有什么意思,做个实验测试一下就可以了,最大是64K应该没有人反对吧 那就是最小了,有的说0 byte, 有的说16Bytes, 有的说其他的,那到底是多少,我们看这个程序assume cs:code, ds:datadata segment data endscode s... 阅读全文
posted @ 2015-01-29 10:43 Acg!Check 阅读(628) 评论(0) 推荐(0)
摘要: 今天弄这个控件,可以拖到对话框上编译,没错,但是运行对话框不显示. 手动在窗口上创建, 不显示.哎呀....那个郁闷啊,后来终于知道了咋回事。原来得初始化啊, 初始化方式如下:1 INITCOMMONCONTROLSEX icex;2 3 icex.dwICC = ICC_DATE_CLASSES;... 阅读全文
posted @ 2015-01-29 10:34 Acg!Check 阅读(299) 评论(0) 推荐(0)
摘要: 二维数组的指针形式 Array[2][3]: 1> *(*(Array + i) + j) 2> *(Array + i * 行长 + j) 详见《C专家编程》 =========================分割线============================const的后面如果紧随着... 阅读全文
posted @ 2015-01-29 10:13 Acg!Check 阅读(266) 评论(0) 推荐(0)