程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 匯編語言 >> 匯編語言技術指標

匯編語言技術指標

編輯:匯編語言

一、程序狀態寄存器
PSW(Program Status Word)為程序狀態寄存器,這是一個16位寄存器,由條件碼標志(flag)和控制標志構成:
bit0:CF
bit2:PF
bit4:AF
bit6:ZF
bit7:SF
bit8:TF
bit9:IF
bit10:DF
bit11:OF
其中,條件碼標志用來記錄程序中運行結果狀態信息.由於這些狀態信息往往作為後繼條件轉移指令的轉移控制條件,所以稱為條件碼.這包括以下6位:
OF(Overflow Flag)溢出標志,在運行過程中,如操作數超出了機器能表示的范圍則稱為溢出,此時OF位置1,否則置0.
SF(Sign Flag)符號標志,記錄運算結果的符號,結果為負時置1,否則置0.
ZF(Zero Flag)零標志,運算結果為0時ZF位置1,否則置0.
CF(Carry Flag)進位標志,記錄運算時從最高有效位產生的進位值.例如,執行加法指令時,最高有效位有進位時置1,否則置0.
AF(Auxiliary carry Flag)輔助進位標志,記錄運算時第3位(半個字節)產生的進位值.例如,執行加法指令時第3位有進位時置1,否則置0.
PF(Parity Flag)奇偶標志,用來為機器中傳送信息時可能產生的代碼出錯情況提供檢驗條件.當結果操作數中1的個數為偶數時置1,否則置0
控制標志位有三個:
DF(Direction Flag)方向標志,在串處理指令中控制處理信息的方向用。當DF位為1時,每次操作後使變址寄存器SI和DI減量,這樣就使串處理從高地址向低地址方向處理。當DF為0時,則使SI和DI增量,使串處理從低地址向高地址處理。
IF(Interrupt Flag)中斷標志,當IF為1時,允許中斷,否則關閉中斷
TF(Trap Flaga)陷井標志,用於單步方式操作。當TF位為1時,每條指令執行完後產生陷阱,由系統控制計算機;當TF位為0時,CPU正常工作不產生陷阱。

二、中斷屏蔽寄存器
中斷屏蔽寄存器的I/O端口地址是21H,它的8位對應8個外設。
bit0:定時器(IR0)
bit1:鍵盤(IR1)
bit2:保留(IR2)
bit3:串行通訊口(2)(IR3)
bit4:串行通訊口(1)(IR4)
bit5:硬盤(IR5)
bit6:軟盤(IR6)
bit7:打印機(IR7)
通過設置這個寄存器的某位為1或為1允許或禁止某種外設的中斷.某位為0表示允許某種外設中斷請求,某位為1表示某種外設的中斷請求被屏蔽(禁止).
例如,只允許鍵盤中斷,可設置如下中斷屏幕字:
MOV AL,11111101B
OUT 21H,AL
如果系統中要新增設鍵盤中斷,則可用下列指令實現:
IN AL,21H
AND AL,11111101B
OUT 21H,AL
三、中斷命令寄存器
bit0:L0
bit1:L1
bit2:L2
bit3,bit4:0
bit5:EOI
bit6:SL
bit7:R
中斷命令寄存器的I/O端口地址為20H,它的各個控制位可動態地控制中斷處理過程,其中L2-L0三位指定IR0-IR7中具有最低優先級的中斷請求.位6(Set Level)和位7(Rotate)控制IR0-IR7的中斷優先級的順序.位5(EOI)是中斷結束位.當EOI為1時,當前正在處理的中斷請求就被清除,所以在中斷處理完成後,必須中斷結束位置於1,否則以後將屏蔽掉對同級中斷或低級中斷的處理.當然在必要的時候,在中斷處理程序中也可以用EOI命令清除當前的中斷請求,使得在中斷處理的過程中又能響應同級或低級的中斷.
結束外中斷用下面的指令:
MOV AL,20H
OUT 20H,AL
在發出一個EOI命令時,位7和位6有四種組合,其含義如下:
R SL
0 0 正常優先級方式
0 1 清除由L2-L1指定的中斷請求
1 0 各中斷優先級依次左循環一個位置
1 1 各中斷優先級依次循環到由L2-L0指定的中斷請求達到最低優先級位置上.
四、鍵盤狀態字節
bit0=1:按下右移鍵Right Shift
bit1=1:按下左移鍵Left Shift
bit2=1:按下控制鍵Ctrl
bit3=1:按下交替鍵Alt
bit4=1:Scroll Lock狀態已變換
bit5=1:Num Lock狀態已變換
bit6=1:Caps Lock狀態已變換
bit7=1:Insert狀態已變換
五、鍵盤緩沖區結構
0040:001A BUFF_HEAD DW ? ;鍵盤緩沖區的首地址
0040:001C BUFF_TAIL DW ? ;鍵盤緩沖區的末地址
0040:001E KB_BUFFER DW 16 DUP(?) ;16個輸入量的空間
0040:003E KB_BUFFER_END LABEL WORD
這個緩沖區是一個先進先出的循環隊列,BUFF_HEAD和BUFF_TAIL是緩沖區的兩個地址指針.當HEAD指和TAIL指針相等時,說明緩沖區為空.
六、彩色屬性字節
bit0-bit3:前景(bit0:B,bit1:G,bit2:R,bit3:I)
bit4-bit6:背景(bit4:B,bit5:G,bit6:R)
bit7:閃爍(BL)
RGB分別表示紅,綠,蘭,BL表示閃爍,I為亮度,閃爍和亮度只應用於前景.
七、DOS預定義文件代號
0=標准輸入設備
1=標准輸出設備
2=標准錯誤輸出設備
3=標准輔助設備
4=標准打印設備
八、文件代號式文件操作錯誤返回代碼
01 非法功能號
02 文件未找到
03 路徑未找到
04 同時打開的文件太多
05 拒絕存取
06 非法文件代號
07 內存控制塊被破壞
08 內存不夠
09 非法存儲塊地址
10 非法環境
11 非法格式
12 非法存取代碼
13 非法數據
14 (未用)
15 非法指定設備
16 試圖刪除當前的目錄
17 設備不一致
18 已沒有文件
九、文件屬性字節
bit0:只讀
bit1:隱文件
bit2:系統文件
bit3:卷文件
bit4:子目錄
bit5:歸檔位(該位為1表示:已寫入並關閉了的文件(硬盤用))
十、存取代碼
0--為讀而打開文件
1--為寫而打開文件
2--為讀和寫而打開文件
十一、磁道地址區
用BIOS功能對磁道進行格式化操作要求ES:BX寄存器指定一組磁道地址區,對磁道上的每一個扇區,必須有一個格式為T/H/S/B的四個字節的數據項,這裡
T=磁道號
H=磁頭號
S=扇區號
B=每扇區的字節數(00=128,01=256,02=512,03=1024)
十二、磁盤狀態字節
用BIOS磁盤操作(AH=02,03,04,05)如果操作成功,則CF和AH置為0;如果操作失敗,CF置為1,AH中返回表示出錯原因的狀態代碼。
01 給磁盤I/O傳送了非法命令
02 磁盤上沒有發現地址標記
03 試圖往寫保護盤上寫
04 沒有找到指定的扇區
08 DMA超載運行
09 DMA超過64K的限制
10 讀盤數據錯(CRC)
20 軟盤控制器出錯
40 隨機移動失敗
80 回答失敗

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved