对pmtest2中两段代码的理解(转载) 转载于:http://wenku.baidu.com/view/57a589d249649b6648d74727.html 注意一.在由保护模式切换到实模式之前,用normal选择子对段寄存器进行填充。 原因: 在切换到实模式之前,把一个指向似乎没有用的数据段的描述符Normal的选择子装载到DS和ES。这是为什么呢? 实模式下段描述...
一、pmtest1.asm 下面对pmtest1.asm中的文件进行简单的分析 1.首先在先定义一个定义全局描述符表GDT的节[SECTION.gdt],GDT为操作系统提供了段式存储机制。 其中包括三个描述符,分别为 LABEL_GDT,LABEL_DESC_CODE32和LABEL_DESC_VIDEO,每一个描述符定义了一个段,第一个描述符段基址和段界限都为0;第二个描述...
2. test 把两个操作数进行"与"操作,不保存运算结果,只设置标志位, 一般用来测试寄存器是否为空 text eax,eax //来检测eax是否为空 jnz xxxxx //不为空就跳 .1:lodsb;load a byte from ds:si to al --- Itestal, al;if al =0 then zf changed ,the string is end with 0 意思是循环加载PMMessa...
;编译方法:nasm pmtest2.asm -o pmtest2.com ; === %include "pm.inc" ;常量,宏,以及一些说明 org 0100h jmp LABEL_BEGIN //LABEL_BEGIN 程序代码运行时的入口处,是在实模式下,不需要选择子。 [SECTION .gdt] ; GDT ;段基址,段界限,属性 LABEL_GDT: Descriptor 0, 0, 0 ;空描述符 LABEL_DESC_...
阅读排行榜 1. 【学习笔记】自己动手写操作系统——pmtest2(468) 2. 【学习笔记】自己动手写操作系统--pmtest3(452) 3. 【学习笔记】自己动手写操作系统--pmtest1(396) 4. 【学习笔记】自己动手写操作系统--pmtest4 (303) 5. pmtest8(255) ...