freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

微型計算機原理與接口技術(shù)實驗教程-文庫吧

2024-10-06 19:14 本頁面


【正文】 CODE START 實驗 4 中斷程序設(shè)計實驗 [實驗目的] 1.熟悉 PC 機系列從中斷請求到中斷響應(yīng)處理、中斷返回的整個中斷過 程和詳細流程; 2. 熟悉掌握中斷有關(guān)概念 3. 了解 8259的原理及使用方法 4. 學會中斷服務(wù)程序的編寫、入口地址的設(shè)置和將用戶中斷源引入的方法 [實驗重點和難點] 1.中斷服務(wù)程序的編寫 [實驗課時] 2學時 [實驗儀器] 聯(lián)想啟天 2400微型計算機。 [實驗原理] 1.中斷向量的裝入 中斷向量并非常駐 ;關(guān)中斷 CLD ; MOV ES,AX ;給 ES 賦值 MOV DI,4*60H ;中斷向量指針- DI MOV AX,OFFSET_INTR ;中斷服務(wù)程序偏移值- AX STOSW ;AX[DI][DI+1] MOV AX,SEG_INTR ;中斷服務(wù)程序段基址 AX STOSW ; AX[DI+2][DI+3] STI ;開中斷 ( 2)將中斷服務(wù)程序的入口地址直接寫入中斷向量表 MOV AX, 00H MOV ES, AX MOV BX, 60H*4 ;中斷號 *4BX MOV AX,006DH ;中斷服務(wù)程序偏移地址 MOV ES:[BX],AX ;裝 入偏移地址 PUSH CS POP AX ;獲取中斷服務(wù)程序的段基址 MOV ES:[BX+2],AX ;裝入段基址 ( 1)保存原中斷向量(例 1CH)的入口地址 MOV AL, N MOV AH, 35H INT 21H MOV OLD_INT_SEG, AX MOV OLD_INT_OFF, BX ;取原中斷向量的入口地址并保存 ( 2)設(shè)置新的中斷向量 N 的入口地址 MOV AL, N MOV AH, 25H MOV DX, SEG INT_PR MOV DS, DX MOV DX, OFFSET INT_PR INT 21H ( 3)恢復原中斷向量 MOV AL, N MOV AH, 25H MOV DX, OLD_INT_PR MOV DS, DX MOV DX, OLD_INT_PR INT 21H 3.主程序結(jié)構(gòu) CLI ;關(guān)中斷 ? ;初始化部分,保存原中斷向量 N 的入口地址 … ;設(shè)置新的中斷入口地址 STI ;開中斷 ?? ;主程序的其它處理 INT N ; (調(diào)用中斷 ) ?? ;主程序的其它處理 CLI ;關(guān) 中斷 ;恢復原來的借用的中斷向量 STI ;開中斷 MOV AX, 4C00H ;退出程序,回到 DOS INT 21H INTPR PROC FAR CLI ??保護現(xiàn)場 SETI ?? (中斷主程序) CLI ??恢復現(xiàn)場 SETI IRET INTPR ENDP [實驗 msg db Hello World!,?$? d_seg ends c_seg segment assume cs:c_seg,ds:d_seg start: mov ax,d_seg mov ds,ax mov cx,4 l1: mov dx,offset msg mov ah,9h int 21h dec cx jz exit1 jmp l1 exit1: mov ax,4c00h int 21h c_seg ends end start ,再調(diào)試運行 。用子程序的方式實現(xiàn)顯示字符串 d_seg segment msg db Hello World!,?$? d_seg ends c_seg segment assume cs:c_seg,ds:d_seg main proc far call disp call disp exit1: mov ax,4c00h int 21h main endp disp proc near mov ax,d_seg mov ds,ax mov dx,offset msg mov ah,9h int 21h ret disp endp c_seg ends end main 上述子程序?qū)懗芍袛喑绦蛉?67H中斷 (系統(tǒng)為用戶預留 ),并調(diào)試運行 。用中段的方式實現(xiàn)顯示字符串 mov ds,ax d_seg segment mov dx,offset disp msg db Hello World!,?$? mov ah,25h old_int_seg dw 0 mov al,67h old_int_off dw 0 int 21h d_seg ends sti s_seg segment stack ret db 250 dup(0) init_int endp s_seg ends restore_int proc near c_seg segment cli assume cs:c_seg,ds:d_seg,ss:s_seg 。mov ax,d_seg main proc far 。mov ds,ax mov ax,d_seg mov dx,old_int_off mov ds,ax mov ax,old_int_seg call init_int mov ds,ax int 67h mov ah,25h int 67h mov al,67h int 67h int 21h call restore_int sti exit1: mov ax,4c00h ret int 21h restore_int endp main endp disp proc near mov ax,d_seg init_int proc near mov ds,ax cli mov dx,offset msg mov al,67h mov ah,9h mov ah,35h int 21h int 21h iret mov old_int_off,bx disp endp mov old_int_seg,es c_seg ends mov ax,seg disp end main 1CH,編一中斷處理程序,讓系統(tǒng)每秒鐘次顯示一個字符串進行提示 ,共顯示 20次 參考源程序 。用 1CH定時中段的方式實現(xiàn)每秒一個 ,顯示 10個字符串 d_seg segment 。數(shù)據(jù)段 msg db Hello World!,?$? old_int_seg dw 0 。存儲 1ch中斷入口的段地址 old_int_off dw 0 。存儲 1ch中斷入口的偏移地址 count db 0 。次數(shù) ,全局變量 ,在主程序和 。 中斷子程序間通信 count1 db 0 。18 次為 1秒 d_seg ends s_seg segment stack 。堆棧段 db 250 dup(0) s_seg ends c_seg segment 。代碼段 assume cs:c_seg,ds:d_seg,ss:s_seg main proc far 。主程序開始 mov ax,d_seg mov ds,ax 。數(shù)據(jù)段初始化 call init_int 。初始化中斷 l1: cmp count,10 。50 次 jne l1 call restore_int ?;謴驮?1ch中斷入口 exit1: mov ax,4c00h 。退出 ,回到 DOS int 21h main endp 。主程序結(jié)束 init_int proc near 。初始化中斷子程序開始 cli push ds 。保存 DS,因程序中修改了它 mov al,1ch mov ah,35h int 21h mov old_int_off,bx 。保存原 1ch的偏移地址 mov old_int_seg,es 。保存原 1ch的段地址 mov ax,seg disp 。安裝新中斷程序入口地址 mov ds,ax mov dx,offset disp mov ah,25h mov al,1ch int 21h pop ds 。恢復 DS sti ret init_int endp 。初始化中斷子程序結(jié)束 restore_int proc near ?;謴驮袛嘧映绦蜷_始 cli mov dx,old_int_off mov ax,old_int_seg mov ds,ax mov ah,25h mov al,1ch int 21h sti ret restore_int endp ?;謴驮袛嘧映绦蚪Y(jié)束 disp proc near 。新的 1ch中段程序開始 cl
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1