帮我看看这段演示实模式和保护模式之间的转换的代码,我晕了

rularys rularys 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这段演示实模式和保护模式之间的转换的代码,我改来改去就是不能让它乖乖地运行,每次运行后只有一个结果:机器冷重起~~郁闷,不知道问题在哪里,请帮我看看我错在哪里啦

.386p

Descriptor struc
limitl dw 0
baselw dw 0
basehwlb db 0
attri db 0
limith db 0
basehwhb db 0
Descriptor ends
;***************************************************
JUMP16 MACRO Selector,Offset
db 0eah
dw Offset
dw Selector
ENDM
;-------------------------------
EnableA20 MACRO
IN AL,92H
OR AL,2
OUT 92H,AL
ENDM
;--------------------------------
DisableA20 MACRO
IN AL,92H
AND AL,0FDH
OUT 92H,AL
ENDM
;***************************************************

Data Segment use16

gdt0 LABEL BYTE
DUMMY Descriptor<>
CodeSel equ $-gdt0
CodeDes Descriptor<0ffffh,0,0,9ah,0,0>
DataSel equ $-gdt0
DataDes Descriptor<0ffffh,0,0,92h,0cf,0>
VideoSel equ $-gdt0
VideoDes Descriptor<0ffffh,8000h,0Bh,92h,0,0>
StkSel equ $-gdt0
StkDes Descriptor<0ffffh,0,0,96h,0,0>
;----------------------------------------------
GdtLen equ $-gdt0

GdtPtr dw GdtLen-1
dd 0
Buff db 256 dup (?)
Mesg db 'Now Is In Protect Mode.',0

Data ends

;*************************************************
stk Segment STACK use16
db 1024 dup (0)
stk ends
;*************************************************

Code Segment use16
assume cs:Code,ds:Data,ss:stk

start:
xor ax,ax
mov ax,Data
mov ds,ax

mov bx,16
mul bx
add ax,offset gdt0 ;设置全局描述符表的基地址
adc dx,0
mov word ptr [GdtPtr+2],ax
mov word ptr [GdtPtr+4],dx

mov ax,Code ;设置代码段
mul bx
mov CodeDes.baselw,ax
mov CodeDes.basehwlb,dl
mov CodeDes.basehwhb,dh

mov ax,ss ;设置堆栈段
mul bx
mov StkDes.baselw,ax
mov StkDes.basehwlb,dl
mov StkDes.basehwhb,dh

mov ax,ds ;设置数据段
mul bx
add ax,offset Buff
adc dx,0
mov DataDes.baselw,ax
mov DataDes.basehwlb,dl
mov DataDes.basehwhb,dh
lgdt fword ptr GdtPtr
cli
EnableA20
;进入保护模式:
mov eax,cr0
or al,01h
nop
nop
nop
nop
nop ;for Debug
mov cr0,eax
JUMP16 CodeSel,<OFFSET ProtectCode> ; 刷新缓存
ProtectCode:
mov ax,StkSel
mov ss,ax
mov ax,DataSel
mov ds,ax
mov ax,VideoSel
mov es,ax

;直接写视频缓冲来显示提示消息:
mov esi,offset Mesg
mov edi,80*10
cld
mov ah,1eh
Load:
lodsb
cmp al,0
jz ReadyToReal
stosw
jmp Load

ReadyToReal: ;退回实模式:
mov eax,cr0
and al,0feh
mov cr0,eax
JUMP16 <SEG Real>,<OFFSET Real> ;刷新缓存
Real:
DisableA20
sti
mov ax,Data
mov ds,ax
mov es,ax
mov ax,stk
mov ss,ax
WAITKEY:
mov ah, 08h
int 21h
mov ax,4c00h
int 21h

Code ends

end start
...全文

相关推荐

OpenGL入门教程

概述 OpenGL OpenGL是渲染2D、3D矢量图形硬件的一种软件接口。本质上说,它是一个3D图形和模型库,具有高度的可移植性,并且具有非常快的渲染速度。OpenGL并不是一种语言,而是更像一个C运行时函数库。它提供了一些预包装的功能,帮助开发人员编写功能强大的三维应用程序。 OpenGL可以再多种操作系统平台上运行,例如各种版本的Windows、UNIX/Linux、Mac OS 和 OS/...

xiangzhihong8

OpenGL 入门教程1

说起编程作图,大概还有很多人想起 TC 的#include 吧? 但是各位是否想过,那些画面绚丽的 PC 游戏是如何编写出来的?就靠 TC 那可怜的 640*480 分辨率、16 色来做吗?显然是不行的。 本帖的目的是让大家放弃 TC 的老旧图形接口,让大家接触一些新事物。 OpenGL 作为当前主流的图形 API 之一,它在一些场合具有比 DirectX 更优越的特性。 1、与 C 语

哒哒网络

QOpenGL入门教程(一)——OpenGL渲染管线

前言 这是本教程的第一个篇章,你是否已经迫不及待的想动手写代码了?真是太可惜了,这一篇章我们并不会涉及到Qt和代码,而是说一些有用并且有意思的事情。 没有进行思考就直接上手写代码会让你产生一些“先入为主”的错误观念,它们将成为你之后学习过程中的阻碍,因此,身体放松,然后沉住气,认真看完这一章,到之后你真正学习的代码时候就会发现自己tm跟开了挂一样:“卧槽,原来OpenGL这么简单!!!?” 能够看到这篇文章,说明你大概率也是一名程序开发者,你为什么来学OpenGL呢?是因为兴趣使然,还是工作需要呢?如

Italink

蒙古国寺庙shp信息点wgs84.zip

蒙古国寺庙shp信息点wgs84.zip

鸿业远图科技

【电力系统状态估计与PMU(相量测量单元)】使用WLS和PMU来估计系统的电压幅值和角度还将这些值与使用Newton-Raphson方法获得的状态进行比较(Matlab代码实现)

内容概要:本文系统阐述了基于加权最小二乘法(WLS)融合相量测量单元(PMU)量测数据进行电力系统状态估计的理论与实现方法,重点研究了如何利用PMU提供的高精度、高同步性的电压和电流相量信息,构建精确的量测方程,并将其集成到传统的WLS状态估计算法中,以实现对系统节点电压幅值和相角的高精度估计。文中详细描述了WLS-PMU联合估计模型的数学推导过程,包括状态变量定义、量测函数建立、雅可比矩阵计算及迭代求解流程,并通过Matlab编程实现了该算法。研究进一步将WLS-PMU的估计结果与基于传统SCADA量测和牛顿-拉夫森(Newton-Raphson)潮流计算的状态估计结果进行对比分析,通过仿真验证了PMU的引入能显著提升状态估计的精度、收敛速度和抗噪声能力,为现代电力系统的高精度实时监控与安全分析提供了有效的技术手段。; 适合人群:具备电力系统分析、现代控制理论基础,熟悉状态估计、潮流计算原理,并能熟练运用Matlab进行仿真实验的电气工程专业高年级本科生、研究生及从事电力系统自动化、智能电网相关领域的科研人员和技术工程师。; 使用场景及目标:① 掌握融合PMU量测的WLS状态估计模型的完整构建方法与理论依据;② 学习并掌握在Matlab环境中实现WLS算法及Newton-Raphson潮流计算的具体编程技巧与仿真流程;③ 通过定量对比分析,深入理解PMU在提升电网可观测性、增强状态估计鲁棒性方面的核心价值与技术优势。; 阅读建议:建议读者在阅读时紧密结合所提供的Matlab代码,逐行分析算法实现细节,特别是PMU量测方程的处理、权重矩阵的设定以及WLS迭代过程的逻辑。鼓励通过修改系统参数(如网络拓扑、PMU配置数量与位置)、引入不同程度的量测噪声等方式进行扩展性仿真实验,以直观感受不同因素对估计性能的影响,从而深化对状态估计理论精髓的理解。

逝川长叹
评论 4
收藏 已收藏
分享
返回顶部
rularys
汇编语言 21,500 成员 41,619 内容