⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3p6t1.asm

📁 汇编学习经典,DOS环境可在 win2000下使用
💻 ASM
字号:
;**********************************************************************
;   保护方式下的编程示例 			陈家祺	1996.6
;       ---考查段高速缓冲寄存器的作用
;
;   1 实方式进入保护方式及保护方式返回实方式方法;
;   2 保护方式下的指令操作(直接写屏,满屏显示'A').
;	    不能装栽Emm386.exe,因为Emm386.exe装载后,cpu处于虚拟8086方式下
;结论:	
;   1 在实方式下, 段高速缓冲寄存器同样发挥作用;
;   2 在实方式下, 每当改变段寄存器的内容时, 段高速缓冲寄存器的基地址发生改变:   * 环境: MASM6.0,DOS6.2,DOS7.0, 80486主机, Himem.sys, 
;     即, 基地址=段寄存器的内容*16.
;   3 当进行工作方式切换后, 段高速缓冲寄存器的内容不变, 除非向段寄存器
;     送入选择字(保护方式下)或段基地址(实方式下);
;**********************************************************************
.MODEL small
.386p
.STACK					; 堆栈段, 堆栈空间为1024
.DATA					; 数据段
char		db   'A'		; 要显示的字符
.CODE   				; 代码段
	.STARTUP			; 初始化DS,SS和SP
	cli
	call prot			; 调用保护方式操作子程
	sti
	mov	ah,0
	int	16h			; BIOS键盘中断调用,等待按键!
	.EXIT 0				; 返回DOS!

prot 	proc near
	mov ax,0b800h			
	mov es,ax

	mov eax,cr0			
	or  al,1			; 设置控制寄存器CR0的PE位
	mov cr0,eax			; 进入保护方式
; 进入保护方式
	mov bx,0
	mov ah,17h			; 字符颜色属性,蓝底白字
	mov al,char			; 显示字符'A'
	mov es:[bx],ax

	mov eax,cr0			
	and al,0feh			; 清除控制寄存器CR0的PE位
	mov cr0,eax			; 切换到实方式
; 返回到实方式
	ret
prot  endp

   	END 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -