微機(jī)原理與接口電路的重點(diǎn)在于輸入輸出接口
- 本文將在介紹IO接口電路特性及IO指令的基礎(chǔ)上,講述了無(wú)條件傳送隐孽、查詢傳送侠草、中斷傳送和DMA傳送的接口電路和編程。CPU通過(guò)三條總線(數(shù)據(jù)總線、地址總線和控制總線)與IO接口電路相連啊央,IO接口電路連接到了外設(shè)眶诈。在IO接口電路中有數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器瓜饥。
- IO接口電路的基本功能有數(shù)據(jù)緩沖逝撬、信號(hào)變換。編址有兩種方法:與存儲(chǔ)器獨(dú)立編址乓土、與存儲(chǔ)器統(tǒng)一編址宪潮。然后就是IO指令:
IN AL/AX/EAX, i8/DX
OUT i8/DX, AL/AX/EAX
其中i8是直接尋址,DX是間接尋址趣苏。8位IO指令使用AL狡相,16位使用AX,32位使用EAX食磕;匯編指令的左邊是目的操作數(shù)尽棕,右邊是源操作數(shù)。所以IN就是i8/DX的數(shù)據(jù)傳送給AL/AX/EAX彬伦,OUT正相反滔悉。
例如:
in al, 21h ;從地址21h的io端口讀一個(gè)字節(jié)到AL
mov dx, 300h ;dx指向300h端口
out dx, al ;將al中的字節(jié)數(shù)據(jù)送到地址為300h的IO端口
- DOS平臺(tái)應(yīng)用程序框架
include io16.inc ;包含16位輸入輸出頭文件
.data ;數(shù)據(jù)段
msg byte 'Hello, assembly!'. 13,10,0 ;定義一個(gè)要顯示的字符串
.code ;數(shù)據(jù)段
start: ;程序起始的位置
mov ax, @data ;將數(shù)據(jù)段基地址傳到ds中保存
mov ds, ax ;
mov eax, offset msg ;指定字符串的偏移地址
call dispmsg ;調(diào)用io子程序庫(kù)
exit 0 ;程序正常結(jié)束
end start ;匯編結(jié)束
- DOS功能調(diào)用
DOS利用軟件中斷方式提供系統(tǒng)功能。IA-32共256個(gè)中斷单绑,用中斷號(hào)來(lái)區(qū)別回官。調(diào)用指令為"INT N",其中N代表中斷號(hào)搂橙。調(diào)用步驟:
1. 在AH寄存器中設(shè)置系統(tǒng)功能調(diào)用號(hào)
2. 在指定寄存器中設(shè)置入口參數(shù)
3. 用中斷調(diào)用指令(INT n)執(zhí)行功能調(diào)用
4. 根據(jù)出口參數(shù)分析功能調(diào)用的執(zhí)行情況
DOS功能調(diào)用主要是21h歉提,利用AH寄存器區(qū)別各個(gè)子功能。AH=01h区转,從標(biāo)準(zhǔn)輸入設(shè)備輸入一個(gè)字 AH=02h唯袄,從標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符。