組合語言中out和in的用法,組合語言中OUT和IN的用法

2021-08-14 23:01:18 字數 2161 閱讀 8177

1樓:匿名使用者

在8086系列的組合語言中

in指令的意思是從埠中讀取資料,比如 in al,80h,將80h埠資料讀入到al中

out指令的意思是往埠輸出資料,比如 out 80h,al,將al輸出到80h埠

2樓:職場云云老師

組合語言中,cpu對外設的操作通過專門的埠讀寫指令來完成;

讀埠用in指令,寫埠用out指令。

例子如下:

in al,21h;表示從21h埠讀取一位元組資料到alin ax,21h;表示從埠地址21h讀取1位元組資料到al,從埠地址22h讀取1位元組到ah

mov dx,379h

in al,dx ;從埠379h讀取1位元組到alout 21h,al;將al的值寫入21h埠out 21h,ax;將ax的值寫入埠地址21h開始的連續兩個位元組。(port[21h]=al,port[22h]=ah)

mov dx,378h

out dx,ax ;將ah和al分別寫入埠379h和378h

3樓:

此指令可以這麼看

out 埠地址,要輸出的資料

這裡18h是十六進位制數18,81h表示埠號為十六進位制數81的埠;out 81h,al 中out是把al中資料送給81h埠。

組合語言中test的用法

4樓:蘇嘉愛娛樂

test對兩個引數(目標,源)執行and邏輯操作,並根據結果設定標誌暫存器,結果本身不會儲存。

test ax,bx 與 and ax,bx 命令有相同效果,只是test指令不改變ax和bx的內容,而and指令會把結果儲存到ax中。

test命令將兩個運算元進行邏輯與運算,並根據運算結果設定相關的標誌位。但是,test命令的兩個運算元不會被改變。運算結果在設定過相關標記位後會被丟棄。

est的一個非常普遍的用法是用來測試一方暫存器是否為空:test ecx, ecx jz somewhere,如果ecx為零,設定zf零標誌為1,jz跳轉。

擴充套件資料

pytest :

pytest 允許你在任何名為 test_*.py 的檔案中定義測試,並將其定義為以 test_* 開頭的函式。然後,pytest 將在整個專案中查詢所有測試,並在控制檯中執行 pytest 時自動執行這些測試。

pytest 接受標誌和引數 ,它們可以在測試執行器停止時更改,這些包含如何輸出結果,執行哪些測試以及輸出中包含哪些資訊。

它還包括一個 set_trace() 函式,它可以進入到你的測試中。它會暫停您的測試, 並允許你與變數進行互動,不然你只能在終端中“四處翻弄”來除錯你的專案。pytest 最好的一方面是其強大的外掛生態系統。

5樓:匿名使用者

為舉例方便說一下jnz和jz

測試條件

jz zf=1

jnz zf=0

即jz=jump if zero (結果為0則設定zf零標誌為1,跳轉)

jnz=jump if not zero

test屬於邏輯運算指令

功能: 執行bit與bit之間的邏輯運算

測試(兩運算元作與運算,僅修改標誌位,不回送結果).

test對兩個引數(目標,源)執行and邏輯操作,並根據結果設定標誌暫存器,結果本身不會儲存。test ax,bx 與 and ax,bx 命令有相同效果

語法: test r/m,r/m/data

影響標誌: c,o,p,z,s(其中c與o兩個標誌會被設為0)

運用舉例:

1.test用來測試一個位,例如暫存器:

test eax, 100b; b字尾意為二進位制

jnz ******; 如果eax右數第三個位為1,jnz將會跳轉

我是這樣想的,jnz跳轉的條件是zf=0,zf=0意味著zf(零標誌)沒被置位,即邏輯與結果為1.

2.test的一個非常普遍的用法是用來測試一方暫存器是否為空:

test ecx, ecx

jz somewhere

如果ecx為零,設定zf零標誌為1,jz跳轉

6樓:無地自容射手

組合語言中,test的用法你可以。到相關的組合語言的書裡進行了解

組合語言中db指令的意義,組合語言中DB指令的意義

db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 message db hello 此時,字串 hello 中每個字元會佔用1個位元組,51微控制器中,用於定義位元組的內容。db 指令以表示式...

組合語言中的dec是什麼意思,組合語言中的DEC是什麼意思

組合語言中,dec是減1指令,該指令使運算元的內容減1,然後再送回該運算元。該運算元可以是暫存器運算元 儲存器運算元。例如 dec al al內容減1,然後再送aldec ax ax減內容1,然後再送ax dec cont cont減內容1,然後再送cont 00h 30h 30h,30h位址在什麼...

組合語言中b表示什麼,組合語言中 BX 表示什麼

您好,很高興為您解答。bx 表示的是乙個偏移位址。比如你ds 1000h的話。mov bx,1 那麼 mov ax,bx 那麼他就會尋找 段位址1000,偏移位址為0001h 的資料放入到ax中 mov ax,bx bx 這種方式叫做暫存器間接定址方式。即把 bx 指向的位址中的內容,送入ax暫存器...