組合語言中OUT和IN的用法

2021-07-30 10:39:25 字數 397 閱讀 5973

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

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

例子如下:

in al,21h;表示從21h埠讀取一位元組資料到al

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

mov dx,379h

in al,dx ;從埠379h讀取1位元組到al

out 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

組合語言中macro的用法

如果有一段程式需要多次使用,為使程式不重複書寫這段程式,可用巨集定義把所需要重複出現的程式塊定義成巨集指令,此後在巨集指令出現的地方,巨集匯程式設計序總是自動地把它們替換成相應的 段。巨集指令格式 巨集指令名 macro 形式引數,段 endm在巨集定義中,使用了 形式引數 它們引用巨集指令時被給出...

組合語言中的常數

1,數值常數 二進位制數 10110100b 八進位制數146q,5430 十進位制數146d,543 十六進製制數 1a2fh,0ff00h 實數12.48e 2,1a3c0000r 彙編時,則有匯程式設計序將所有的數值常數都轉換成二進位制標示的目標 凡是以字母a f開頭的十六進製制數,唏噓在前面...

組合語言中ASSUME簡介

size large url 組合語言中的assume偽指令 directive assume偽指令通知匯程式設計序為 段 資料段 附加段以及堆疊段選擇什麼名字。沒有assume偽指令時,匯程式設計序假設不分段,並自動把段超越字首用於所有定址儲存器資料的偽指令。assume語句只能用於完整的段定義。...