亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? p_os.asm

?? 操作系統實驗教程核心技術與編程實例書中地例子代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;中文操作系統,演示中斷系統,漢字顯示,任務切換功能與分頁模式。
;By 潘龍平/nuaa/08990115
;Date:6/18/2002
;顯示模式為800*600 16色
;包含文件有:P_BASE_DEF.ASM,P_USER_1.ASM,INITLDT.ASM
;            P_2.ASM,P_INT_SEV1.ASM
;其他用到的文件有 D:\HZK16,D:\FENBIN

;===============================================================

.MODEL HUGE
.386P
INCLUDE P_BASE.ASM

REAL_STACK SEGMENT STACK PARA 'STACK'
		DB 200H DUP(0)
REAL_STACK_LEN  EQU $
REAL_STACK ENDS

REAL_DATA       SEGMENT

SAVE_GDT        DW 4 DUP(0)
SAVE_IDT        DW 4 DUP(0)
SAVE_SS         DW 0
SAVE_SP         DW 0
GDT_SIZE        DW 0
GDT_ADDR        DW 0,0
IDT_SIZE        DW 0
IDT_ADDR        DW 0,0
USER1_LDT_SIZE  DW 0
USER1_LDT_ADDR  DW 0,0

C_BUF_SIZE      DW 0                    ;讀漢字庫文件時用
G_BUF_SUM       DD 0
C_BUFFER        DB 1024 DUP(?)

HZKNAME         DB 'D:\HZK16',0         ;漢字庫文件
HZK_HANDLE      DW 0                    ;漢字庫文件的句柄
HZK_OVER        DB 0                    ;讀漢字庫文件已結束
ERR_OPEN_HZK    DB 'Can not open the file Chinese fonts file$',0
					;打開漢字庫文件出錯信息

OK_MSG          DB 0DH,0AH,'HAVE RETURNED TO DOS,HAVE A NICE DAY,BYE!$'

REAL_DATA_LEN   EQU $
REAL_DATA ENDS

REAL_CODE SEGMENT WORD PUBLIC 'CODE'
	ASSUME CS:REAL_CODE,DS:REAL_DATA,SS:REAL_STACK
START:
	MOV AX,REAL_DATA
	MOV DS,AX
	CLI
	MOV AX,REAL_STACK
	MOV SS,AX
	MOV AX,REAL_STACK_LEN
	MOV SP,AX

	MOV AX,OS_DATA
	MOV DS,AX
	MOV ES,AX
	MOV CX,6400             ;加載圖片到內存ES:SI
	MOV SI,OFFSET OS_BMPBUF
	MOV DX,OFFSET OS_BMPNAME
	CALL LOAD_PIC
	CMP AL,0
	JZ LBL_LOAD_PIC_SUC
	MOV AH,9
	MOV DX,OFFSET LOAD_BMP_ERR
	INT 21H
	MOV AH,4CH                      ;退出程序
	INT 21H
LBL_LOAD_PIC_SUC:
	MOV AX,1130H            ;將字符集移到OS_DATA開始處
	MOV BH,6
	INT 10H                 ;取得字符集的地址ES:BP
	MOV CX,2048
	MOV DI,0
MOVE_CHAR_SET:
	MOV AL,ES:[BP]
	MOV DS:[DI],AL          
	INC DI
	INC BP
	LOOP MOVE_CHAR_SET

	MOV AX,REAL_DATA
	MOV DS,AX
	MOV ES,AX
	CALL INIT_IDT           ;初始化中斷描述符表
	CALL INIT_GDT           ;初始化全局描述符表
	CALL INIT_LDT           ;初始化局部描述符表

	MOV AX,4F02H            ;進入600*800 16色模式
	MOV BX,102H
	INT 10H

;//////////////////////////////
;讀漢字庫文件到高端內存4M處
	MOV AH,3DH                      
	MOV DX,OFFSET HZKNAME
	MOV AL,0
	INT 21H
	JNC LBL_OPEN_HZK_SUC
	MOV AX,3
	INT 10H
	MOV AH,9                        ;打開漢字庫文件出錯
	MOV DX,OFFSET ERR_OPEN_HZK
	INT 21H
	MOV AH,4CH                      ;退出程序
	INT 21H
LBL_OPEN_HZK_SUC:
	MOV DS:HZK_HANDLE,AX
READ_HZK:
	MOV DS:SAVE_SS,SS
	MOV DS:SAVE_SP,SP
	SGDT FWORD PTR SAVE_GDT
	SGDT FWORD PTR SAVE_GDT
	MOV BX,DS:HZK_HANDLE
	MOV CX,1024
	MOV DX,OFFSET C_BUFFER
	MOV AH,3FH
	INT 21H
	JNC READ_HZK1
	MOV AX,0
	MOV DS:C_BUF_SIZE,AX
	MOV DS:HZK_OVER,1               ;文件已讀完
	MOV AH,3EH
	INT 21H                         ;關閉漢字庫文件
	JMP PROTECT_MODE
READ_HZK1:
	MOV DS:C_BUF_SIZE,AX            ;AX為讀出的實際長度
	CMP AX,1024
	JNL PROTECT_MODE                
	MOV DS:HZK_OVER,1               ;文件已讀完
	MOV BX,DS:HZK_HANDLE
	MOV AH,3EH
	INT 21H                         ;關閉漢字庫文件
PROTECT_MODE:
	MOV AX,REAL_DATA
	MOV DS,AX
	MOV AX,REAL_STACK
	MOV SAVE_SS,AX
	MOV SAVE_SP,SP
	SGDT FWORD PTR SAVE_GDT
	SIDT FWORD PTR SAVE_IDT
	CLI
	LGDT FWORD PTR GDT_SIZE
	LIDT FWORD PTR IDT_SIZE
	OPEN_A20
	MOV EAX,CR0
	OR EAX,1
	MOV CR0,EAX
	JMP ENTER_PROTECT1
ENTER_PROTECT1:
	DB 0EAH
	DW OFFSET ENTER_PROTECT2
	DW REAL_CODE_SEL
ENTER_PROTECT2:
	MOV AX,REAL_DATA_SEL
	MOV FS,AX
	MOV AX,HZK_BUF_SEL
	MOV GS,AX

	CMP FS:C_BUF_SIZE,0
	JE REAL_MODE
	MOV ECX,0
	MOV CX,FS:C_BUF_SIZE
	MOV EAX,OFFSET C_BUFFER
	MOV ESI,EAX
	MOV EDI,FS:G_BUF_SUM
MOVE_BUF1:
	MOV AL,FS:[ESI]
	MOV GS:[EDI],AL
	INC EDI
	INC ESI
	LOOP MOVE_BUF1

	MOV FS:G_BUF_SUM,EDI
REAL_MODE:
	CLI
	MOV EAX,CR0
	AND EAX,0FFFFFFFEH
	MOV CR0,EAX
	JMP ENTER_REAL1
ENTER_REAL1:
	DB 0EAH
	DW OFFSET ENTER_REAL2
	DW REAL_CODE
ENTER_REAL2:
	CLOSE_A20
	MOV AX,REAL_DATA
	MOV DS,AX
	LGDT FWORD PTR SAVE_GDT
	LIDT FWORD PTR SAVE_IDT
	CLI
	MOV SS,SAVE_SS
	MOV SP,SAVE_SP
	STI

	CMP DS:HZK_OVER,1
	JNE READ_HZK                    ;繼續讀漢字庫文件

;讀漢字庫結束
;///////////////////////////////

	TURN_TO_PROTECT                 ;轉入保護模式,進入操作系統
LBL_TO_REAL:
	RETURN_TO_REAL_1                ;從操作系統返回實模式


	MOV AX,3
	INT 10H

	LEA DX,OK_MSG                   ;顯示返回提示信息
	MOV CX,0C00H
	MOV AH,9
	INT 21H

	MOV AH,4CH                      ;結束程序,返回DOS
	INT 21H

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

;****************INIT_IDT開始********************
INIT_IDT   PROC  FAR            ;初始化 IDT
	PUSH DS
	MOV AX,IDT_SEG
	MOV DS,AX

	MOV DI,OFFSET IDT21
	MOV AX,OFFSET SERVE_INT21
	MOV DS:[DI].STRUCT_GATE.OFFSET_L,AX
	POP DS

	XOR DX,DX
	MOV CX,16
	MOV AX,IDT_SEG
	MUL CX
	ADC DX,0
	MOV IDT_SIZE,IDT_LEN
	MOV IDT_ADDR,AX
	MOV IDT_ADDR+2,DX
	RET
INIT_IDT   ENDP
;++++++++++++++++INIT_IDT結束+++++++++++++++++++
;---------------------------------------------------------------
;****************INIT_GDT開始********************
INIT_GDT   PROC  FAR            ;初始化 GDT
	PUSH DS
	MOV AX,GDT_SEG
	MOV DS,AX

	MOV SI,OFFSET GDT_INIT_BEGIN
	MOV CX,GDT_INIT_COUNT
INIT_GDT_LBL1:
	MOV AX,[SI].STRUCT_SEG.BASE_L
	MOVZX EAX,AX
	SHL EAX,4
	SHLD EDX,EAX,16
	MOV [SI].STRUCT_SEG.BASE_L,AX
	MOV [SI].STRUCT_SEG.BASE_M,DL
	MOV [SI].STRUCT_SEG.BASE_H,DH
	ADD SI,SIZE STRUCT_SEG
LOOP INIT_GDT_LBL1
	POP DS

	XOR DX,DX
	MOV CX,16
	MOV AX,GDT_SEG
	MUL CX
	MOV GDT_SIZE,GDT_LEN
	MOV GDT_ADDR,AX
	MOV GDT_ADDR+2,DX
	RET
INIT_GDT   ENDP
;++++++++++++++++INIT_GDT結束+++++++++++++++++++

;加載圖片到內存ES:SI
;DS:DX圖片名稱(包括路徑)
;CX讀的字節數
;如果成功則AX=0,否則AX=-1
LOAD_PIC PROC   FAR
	PUSH DS
	PUSH CX
	PUSH DX

	MOV AH,3DH
	MOV AL,0
	INT 21H
	JC LOAD_PIC_FAILED

	PUSH ES
	POP  DS
	MOV  DX,SI
	MOV BX,AX
	MOV AH,3FH
	INT 21H
	JC LOAD_PIC_FAILED

	MOV AH,3EH
	INT 21H
	JC LOAD_PIC_FAILED

	MOV AX,0
	JMP LOAD_PIC_EXIT
	LOAD_PIC_FAILED:
	MOV AX,0FFH     
LOAD_PIC_EXIT:
	POP DX
	POP CX
	POP DS
	RET
LOAD_PIC ENDP


INCLUDE INITLDT.ASM      ;;初始化局部描述符表的過程

REAL_CODE ENDS

;**************保護模式下的堆棧段開始*************

OS_STACK SEGMENT STACK PARA USE16
	DB 4096 DUP(0)
	OS_STACK_LEN EQU $
OS_STACK ENDS
;++++++++++++++保護模式下的堆棧段結束+++++++++++++++
;---------------------------------------------------------------
;**************保護模式下的數據段開始***************

OS_DATA SEGMENT PARA USE16
ASC_CHAR        DB 2048 DUP(0)          ;英文字符集

V_GDT_SIZE      DW GDT_LEN      ;分頁時的GDT大小
V_GDT_ADDR      DW 0,0          ;分頁時的GDT地址
V_IDT_SIZE      DW IDT_LEN      ;分頁時的IDT大小
V_IDT_ADDR      DW 0,0          ;分頁時的IDT地址

P_GDT_SIZE      DW 0            ;分頁前保存的GDT大小
P_GDT_ADDR      DW 0,0          ;分頁前保存的GDT地址
P_IDT_SIZE      DW 0            ;分頁前保存的IDT大小
P_IDT_ADDR      DW 0,0          ;分頁前保存的IDT地址

OS_CODE_ADDR    DD 0
OS_STACK_ADDR   DD 0
OS_DATA_ADDR    DD 0

OS_BMPNAME      DB 'D:\FENBIN',0        ;位圖文件
OS_BMPBUF       DB 6400 DUP(?)          ;位圖的緩沖區
LOAD_BMP_ERR    DB 'Can not Open the BMP file!$'
					;打開BMP文件出錯信息

msg             db '中',0

MSG1_1          DB '您好,歡迎使用中文操作系統',0
MSG1_2          DB '您正在保護方式下調用21H中斷來清屏與顯示字符串',0
MSG1_3          DB '請按 A 鍵進入系統的一個任務。',0

USER1_MSG_1     DB '您已經從操作系統切換到任務1。',0
USER1_MSG_2     DB '請按 S 鍵返回操作系統,并進入分頁模式。',0

MSG2_1          DB '您已經進入了分頁模式',0
MSG2_2          DB '您正在分頁模式下調用中斷處理程序',0
MSG2_3          DB '請按 D 鍵關閉分頁模式,返回系統。',0

MSG3_1          DB '暑假快樂!',0
MSG3_2          DB '謝謝使用中文操作系統。',0
MSG3_3          DB '請按 F 鍵回到DOS操作系統。',0

MSG_PLP         DB '作者:潘龍平/08990115',0

OS_DATA_LEN EQU $
OS_DATA ENDS
;++++++++++++++保護模式下的數據段結束+++++++++++++++++++++++++++
;---------------------------------------------------------------
;**************保護模式下的任務狀態段開始***********************
OS_TSS   SEGMENT PARA USE16
	OS_TASK  STRUCT_TSS<>
	DB 0FFH
	OS_TSS_LEN EQU $
OS_TSS   ENDS
;++++++++++++++保護模式下的任務狀態段結束+++++++++++++++++++++++
;---------------------------------------------------------------
;**************OS代碼段開始*************************************
OS_CODE  SEGMENT PARA USE16
	 ASSUME CS:OS_CODE,DS:OS_DATA,SS:OS_STACK
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
OS_BEGIN:                               ;保護模式入口
	INIT_PROCTECT                   ;初始化保護模式

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费看欧美美女黄的网站| 免费人成网站在线观看欧美高清| 亚洲综合视频在线| 国产麻豆91精品| 欧美日韩国产经典色站一区二区三区 | 欧美老女人第四色| 中文在线免费一区三区高中清不卡| 一区二区三区久久| 成人国产精品视频| 337p日本欧洲亚洲大胆精品 | 色综合一个色综合| 成人丝袜18视频在线观看| 在线观看91精品国产入口| 国产日韩av一区| 捆绑变态av一区二区三区| 欧美无人高清视频在线观看| 国产亚洲成年网址在线观看| 麻豆久久一区二区| 91麻豆精品国产91久久久更新时间| 中文字幕综合网| 粉嫩一区二区三区性色av| 久久色.com| 国产在线视频一区二区| 日韩免费看的电影| 麻豆精品国产91久久久久久| 777a∨成人精品桃花网| 天使萌一区二区三区免费观看| 在线免费亚洲电影| 一区二区三区高清| 欧美日韩精品一区二区在线播放| 亚洲精品日日夜夜| 91福利在线观看| 亚洲欧美一区二区三区国产精品 | 欧美日韩国产精品成人| 亚洲已满18点击进入久久| 91成人在线精品| 亚洲a一区二区| 欧美日韩高清影院| 五月综合激情日本mⅴ| 777午夜精品免费视频| 五月天久久比比资源色| 欧美视频日韩视频| 三级不卡在线观看| 日韩视频一区在线观看| 国产在线精品一区二区不卡了| 久久久亚洲高清| 99视频在线精品| 亚洲电影一级黄| 欧美电视剧在线看免费| 国产成人在线网站| 亚洲人123区| 欧美日韩一二三| 国产真实精品久久二三区| 久久久综合网站| 97se亚洲国产综合自在线观| 亚洲一级片在线观看| 日韩精品一区二区三区视频播放 | 91麻豆精品国产91久久久久久 | 精品国产免费久久| 不卡视频一二三四| 三级精品在线观看| 欧美激情一区二区三区四区| 91网站黄www| 免费成人在线视频观看| 一区二区三区不卡在线观看| 91电影在线观看| 久久99精品一区二区三区三区| 久久精品一二三| 日本丶国产丶欧美色综合| 极品少妇xxxx精品少妇偷拍| 亚洲人成网站精品片在线观看| 欧美一区二区三区视频在线| 国产不卡一区视频| 亚洲成人激情综合网| 国产日韩欧美高清| 欧美精品久久天天躁| av亚洲精华国产精华精| 日韩和欧美一区二区三区| 日本一区二区三区久久久久久久久不 | 亚洲午夜免费视频| 久久美女高清视频| 欧美蜜桃一区二区三区| 99热在这里有精品免费| 精品一区二区日韩| 午夜日韩在线电影| 亚洲美女屁股眼交| 国产婷婷精品av在线| 欧美乱熟臀69xxxxxx| 不卡的av电影| 国产一区二区三区四区五区美女 | 99精品视频免费在线观看| 久久99精品久久久久婷婷| 亚洲与欧洲av电影| 日本一区二区三区视频视频| 欧美xingq一区二区| 欧美男人的天堂一二区| 欧洲亚洲国产日韩| 91婷婷韩国欧美一区二区| 激情偷乱视频一区二区三区| 一区二区免费在线播放| 最新久久zyz资源站| 国产亚洲成av人在线观看导航| 欧美一二三区在线观看| 欧美色电影在线| 欧美在线免费观看视频| 99精品视频在线免费观看| 成人视屏免费看| 国产98色在线|日韩| 国产成人自拍在线| 国产精品538一区二区在线| 久久爱www久久做| 久久99久久久久久久久久久| 午夜成人免费视频| 午夜久久久影院| 日韩不卡一区二区三区| 日韩成人一级大片| 美女视频黄频大全不卡视频在线播放| 亚洲福利视频导航| 午夜视频在线观看一区二区三区| 亚洲无人区一区| 亚洲国产视频网站| 天堂午夜影视日韩欧美一区二区| 亚洲成人一区在线| 老司机午夜精品| 国产最新精品精品你懂的| 国模少妇一区二区三区| 国产麻豆精品视频| 99精品视频一区| 91久久线看在观草草青青 | 国产激情91久久精品导航| 国产精品一区三区| jizz一区二区| 欧美在线播放高清精品| 在线播放国产精品二区一二区四区| 欧美人xxxx| 久久综合一区二区| 久久精品国产一区二区| 开心九九激情九九欧美日韩精美视频电影 | 在线观看一区二区视频| 久久亚洲免费视频| 极品少妇一区二区| 欧美军同video69gay| 图片区小说区区亚洲影院| 欧美午夜精品一区| 午夜a成v人精品| 奇米影视一区二区三区| 欧美剧情电影在线观看完整版免费励志电影 | 成人久久视频在线观看| 国产.精品.日韩.另类.中文.在线.播放| 国产成人精品综合在线观看 | 一区二区三区在线免费观看| 亚洲主播在线观看| 国产精品一区二区三区99| 狠狠色丁香久久婷婷综合丁香| 九色综合国产一区二区三区| 粉嫩久久99精品久久久久久夜| 日本韩国欧美在线| 欧美喷潮久久久xxxxx| 中文字幕av一区二区三区高| 精品影视av免费| 91精品国产综合久久久久久| 亚洲高清一区二区三区| 在线观看成人免费视频| 日韩黄色一级片| 亚洲精品在线电影| 成人午夜av电影| 亚洲卡通欧美制服中文| 69堂国产成人免费视频| 国产一区二区三区在线观看免费视频| 欧美二区三区91| 粉嫩高潮美女一区二区三区| 亚洲人妖av一区二区| 欧美日韩中字一区| 青青青伊人色综合久久| 欧美xingq一区二区| 成a人片亚洲日本久久| 亚洲不卡在线观看| 一区二区三区高清不卡| 在线视频欧美精品| 亚洲va欧美va人人爽| 91精品国产综合久久香蕉的特点 | 国产午夜亚洲精品不卡| 极品美女销魂一区二区三区免费| 国产欧美久久久精品影院| 色婷婷综合五月| jlzzjlzz欧美大全| 亚洲尤物视频在线| 国产一区二区三区四区五区美女| 26uuu亚洲婷婷狠狠天堂| 精品一区二区综合| 91精品国产综合久久精品性色| 五月综合激情婷婷六月色窝| 中文字幕一区二区三区在线播放| 91高清视频在线| 石原莉奈在线亚洲三区| 欧美videos大乳护士334| 在线观看精品一区| 色欲综合视频天天天| 国产suv一区二区三区88区| 午夜视频一区在线观看|