常見的系統指令

2021-09-10 05:53:01 字數 2053 閱讀 6116

系統指令大概可以用於實現下來功能:

清爽版傳送門

指標引數驗證 verification of pointer parameters

描述符表定址addressing descriptor tables

多工處理multitasking

協同處理和多工處理coprocessing & multiprocessing

輸入輸出input&output

中斷控制interrupt control

除錯 debugging

tlb檢查 tlb testing

系統控制system control

接下來我們詳細介紹:

arpl

該指令一般用於保證子程式的選擇器引數不會要求比呼叫者允許的更高的特權。用法是arpl r/m16, r16,r/m16表示第乙個運算元是16位記憶體變數或者16位暫存器,這個運算元用於存放選擇器的值。r16表示16位暫存器。如果第乙個運算元的rpl(requested privilege level)≤

\le≤第二個運算元的rpl,eflags中的zf位置1,並且提公升第乙個運算元的rpl使之不小於第二個運算元的rpl。否則的話不改變rpl,將zf位置0。

lar裝載讀寫許可權位。

lsl裝載段界。

verr

確定當前特權級能否讀段。

verw

確定當前特權級能夠寫段。

lldt

lldt的作用是裝載區域性描述符表暫存器ldtr。

sldt

sldt的作用是讀取區域性描述符表暫存器ldtr中的內容讀取出來並儲存。

lgdt

lgdt的作用是裝載全域性描述符表暫存器gdtr。

sgdt

sgdt的作用是讀取全域性描述符表暫存器gdtr中的內容讀取出來並儲存。

關於ldtr和gdtr請見作業系統程式設計師必須了解的四類暫存器

ltrltr的作用是裝載任務暫存器tr。

strsldt的作用是讀取任務暫存器tr中的內容讀取出來並儲存。

關於tr請見作業系統程式設計師必須了解的四類暫存器

clts

清除cr0暫存器中的ts標誌(任務轉換標誌)。我們在作業系統程式設計師必須了解到四類暫存器中介紹過,ts標誌在每次發生任務切換後由處理器置1.

esc逃脫指令。

wait

掛起指令的執行,等待協處理器不忙。

lock

用於宣告下一條指令的匯流排鎖訊號。在多處理器環境下這條指令可以用來確保對共享記憶體的獨佔。

inin指令將乙個位元組(byte)或者乙個字(word)的資料從指定埠傳送到指定暫存器。

其中埠號儲存在dx暫存器中,暫存器由指令指定。

outout指令將乙個位元組(byte)或者乙個字(word)的資料從指定暫存器傳送到指定埠。

其中埠號儲存在dx暫存器中,暫存器由指令指定。

ins一般用於從指定埠讀入字串。

outs

一般用於將字串輸入指定埠。

cli關中斷。既清除中斷使能標記。

sti開終端。既將中斷使能標記置1.

lidt

裝載idt(異常描述符表)暫存器。

sidt

將idt中的內容讀出來,並儲存。

mov指令改變除錯暫存器,至於什麼是除錯暫存器以及有什麼作用,請見作業系統程式設計師必須了解的四類暫存器

mov指令改變檢查暫存器,至於什麼是檢查暫存器以及有什麼作用,請見作業系統程式設計師必須了解的四類暫存器

smsw

設定cr0中的msw位,既機器狀態字(machine status word)。

lmsw

設定cr0中的msw位。

hlt停止指令執行並將處理器置為halt狀態。

mov用mov指令改變控制暫存器,至於什麼是控制暫存器以及有什麼作用,請見作業系統程式設計師必須了解的四類暫存器

AngularJS的常見指令

angularjs的指令 指示,命令 指揮示意要做一件事情!指令 就是擴充套件了html的基本功能,通過額外的標籤 屬性來增強html功能 angular的指令在頁面中體現出來就是乙個標籤 屬性 class名稱 注釋等等 1.控制指令,用於angular應用程式載入流程控制 2.渲染指令,用於ang...

Linux 常見的指令

1.建立新檔案vim 新資料夾mkdir mkdir 建立新資料夾 vim 建立新檔案,檢視已存在檔案 vimdiff 對比多個檔案 2.切換當前目錄cd cd 絕對路徑 相對路徑 3.複製cp 移動mv 刪除rm cp 檔名 複製檔案 cp r 資料夾 複製資料夾 mv 檔案 資料夾 目標路徑 移...

常見的git指令

刪除檔案 git rm filename git commit m remove a file git 分支 檢視分支 git branch 建立分支 git branch 切換分支 git checkout 建立 切換分支 git checkout b 合併某分支到當前分支 git merge 刪...