当前位置:首页 > 网络编程 > 软件语言 > 汇编 > 实模式与保护模式切换实例

实模式与保护模式切换实例

点击次数:43 次 发布日期:2008-11-10 08:14:20 作者:源代码网
源代码网推荐
广告载入中
实模式与保护模式切换实例:

源代码网整理以下   本文介绍两个实现实模式与保护模式切换的实例,通过他们说明如何实现实模式与保护模式的切换,也说明保护模式下的80386及其编程。
源代码网推荐<一>演示实模式和保护模式切换的实例(实例一)
源代码网推荐 实例一的逻辑功能是,以十六进制数的形式显示从内存地址110000H开始的256个字节的值。本实例指定该内存区域的目的仅仅是想说明切换到保护模式的必要性,因为在实模式下不能访问该指定内存区域,只有在保护模式下才能访问到该指定区域。
源代码网推荐 本实例的具体实现步骤是:(1)作切换到保护方式的准备;(2)切换到保护方式;(3)把指定内存区域的内容传送到位于常规内存的缓冲区中;(4)切换回实模式;(5)显示缓冲区内容。
源代码网推荐1.包含文件
源代码网推荐 386保护模式汇编语言程序用到的包含文件如下所示,该包含文件在后面的程序中还要用到。
源代码网推荐;名称:386SCD.INC
源代码网推荐;功能:符号常量等的定义
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐;IFNDEF __386SCD_INC
源代码网推荐;__386SCD_INC EQU 1
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐.386P
源代码网推荐;----------------------------------------------------------------------------


源代码网推荐;打开A20地址线
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐EnableA20 MACRO
源代码网推荐push ax
源代码网推荐in al,92h
源代码网推荐or al,00000010b
源代码网推荐out 92h,al
源代码网推荐pop ax
源代码网推荐ENDM
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐;关闭A20地址线
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐DisableA20 MACRO
源代码网推荐push ax
源代码网推荐in al,92h
源代码网推荐and al,11111101b
源代码网推荐out 92h,al
源代码网推荐pop ax
源代码网推荐ENDM
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐;16位偏移的段间直接转移指令的宏定义(在16位代码段中使用)
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐JUMP16 MACRO Selector,Offset
源代码网推荐DB 0eah ;操作码
源代码网推荐DW Offset ;16位偏移量
源代码网推荐DW Selector ;段值或段选择子
源代码网推荐ENDM
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐;32位偏移的段间直接转移指令的宏定义(在32位代码段中使用)
源代码网推荐;----------------------------------------------------------------------------


源代码网推荐COMMENT <JUMP32>
源代码网推荐JUMP32 MACRO Selector,Offset
源代码网推荐DB 0eah ;操作码
源代码网推荐DD OFFSET
源代码网推荐DW Selector ;段值或段选择子
源代码网推荐ENDM
源代码网推荐<JUMP32>
源代码网推荐;-------------------------------------------------
源代码网推荐JUMP32 MACRO Selector,Offset
源代码网推荐DB 0eah ;操作码
源代码网推荐DW OFFSET
源代码网推荐DW 0
源代码网推荐DW Selector ;段值或段选择子
源代码网推荐ENDM
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐;16位偏移的段间调用指令的宏定义(在16位代码段中使用)
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐CALL16 MACRO Selector,Offset
源代码网推荐DB 9ah ;操作码
源代码网推荐DW Offset ;16位偏移量
源代码网推荐DW Selector ;段值或段选择子
源代码网推荐ENDM
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐;32位偏移的段间调用指令的宏定义(在32位代码段中使用)
源代码网推荐;----------------------------------------------------------------------------
源代码网推荐COMMENT <CALL32>
源代码网推荐CALL32 MACRO Selector,Offset
源代码网推荐DB 9ah ;操作码
源代码网推荐DD Offset
源代码网推荐DW Selector ;段值或段选择子

源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华