組合語言INT 20H的具體使用方法

2022-04-07 10:35:20 字數 3762 閱讀 5506

1樓:湯旺河邊

中斷向量表中共儲存256箇中斷地址,中斷號:00h~0ffh。其中,00h~1fh中斷是bios定義的,從20h~0ffh是ms-dos定義的,稱為dos中斷,共224個。

這些中斷項,型別各異,有些項指向資料結構,有些項存有cpu操作碼,有些項已廢棄不用,有些項未在文件中加以任何說明,等等。

1、int 20h 程式終止

本中斷只適用於ms-dos,建議不要使用int 20h終止程式,應當利用dos功能呼叫4ch來適當地終止程式。

本中斷入口引數:cs=程式psp的段地址

返回:無

2、int 21h dos功能呼叫

含有近100個功能,提供了應用程式所需要的大多數服務,包括開啟檔案、關閉檔案、讀檔案、寫檔案、讀鍵盤輸入、寫顯示屏、讀取或設定系統日期和時間,以及一大堆控制變數。具體功能請參見下方的參考資料。

2樓:小小不老

所以21h中斷號要和它的功能號一起來用 mov ah,xx int 21h ------------------------------- 當然也有功能號和中斷號合為一體的(個人看法) 例如 int 20h (呼叫20h中斷 返回)

3樓:獨孤冷瀠

int 20h 程式終止

本中斷只適用於ms-dos,建議不要使用int 20h終止程式,應當利用dos功能呼叫4ch來適當地終止程式。

本中斷入口引數:cs=程式psp的段地址

返回:無

int 21h dos功能呼叫

含有近100個功能,提供了應用程式所需要的大多數服務,包括開啟檔案、關閉檔案、讀檔案、寫檔案、讀鍵盤輸入、寫顯示屏、讀取或設定系統日期和時間,以及一大堆控制變數。

請問學微控制器組合語言中 mov 20h , r0 與 mov 20h, @r0 什麼區別,什麼意思啊

4樓:金依波隗魁

首先在微控制器的來資料儲存器裡

自,都是使用十六進位制數來標識每一個儲存單元的,比如51微控制器中資料儲存器是00h~7fh的,而對於一些儲存單元又使用了特殊的名稱,例如00h儲存單元,又是我們常用的r0,也就是說一個儲存單元可能有多個名稱叫法。然而微控制器的資料也是一十六進位制形式儲存的所以在理解上就容易混淆,在下面的解釋中,請看清每個資料前面的強調修飾語

而這兩條語句就是如果

此時r0裡面的內容是5dh,那麼mov

20h,r0,就是說吧r0裡面的【資料】5dh存入20h【單元】,而mov

20h,@r0是個暫存器間接定址,就是說暫存器r0裡面【資料】是5dh,那麼現在程式自動找到5dh這個【儲存資料的單元】,把5dh【單元】內的【資料】存入20h【單元】,其中5dh【單元】裡的【資料】你就不用管了

5樓:羊舌火郜永

mov20h,r0是將r0儲存的內bai

容復du制到20h

mov20h,@r0是將r0內容指向zhi的地址中的內容複製給20h。比如r0儲存dao的內容是30h,這指令

版的效權果就相當於將30h的內容複製到20h。

是不是有點繞?

微控制器組合語言中mov a,20h是什麼意思

6樓:可軒

就51微控制器組合語言而言,該指令是直接定址:

mov a, 20h 功能是將地址為20h的片內ram一個位元組內容送入累加器;

.就80x86組合語言而方,該指令是立即定址:

mov ax, 20h 功能是將立即數20h送入累加器a;

.這條指令,兩種機器的組合語言的定址方式容易被混淆。

7樓:凡人

是把微控制器內部ram中地址20h單元內容送累加器a。20h是可位定址的。

8樓:匿名使用者

把空格(20h) 給存貯器變數a

9樓:匿名使用者

20h是地址,這句話的意思是把地址20h裡的內容放入累加器a中。

10樓:匿名使用者

mov a,20h ;將記憶體20h單元中的值送入a,20h單元中的值保持不變

11樓:匿名使用者

把16進位制20h送到暫存器a 裡面...

請問學微控制器組合語言中 mov 20h , r0 與 mov 20h, @r0 什麼區別,什麼意思啊

12樓:匿名使用者

mov 20h,r0是

將抄r0儲存的內容

襲複製到20h

mov 20h,@r0是將r0內容指bai向的地址中的內容復du制給20h。比如

zhir0儲存的內容是30h,這指令的效dao果就相當於將30h的內容複製到20h。

是不是有點繞?

13樓:匿名使用者

直接定址和間接定址,這兩個你理解嗎?關於這方面的,一些書籍、資料一定介紹很清楚,希望認真看看書,祝你成功!

14樓:匿名使用者

一個是直接定址指令,一個是間接定址指令

如果 r0 = 0x8e

mov 20h , r0 // 20h = 0x8emov 20h, @r0 // 20h 等於存貯在地址為內0x8e的資料,@r0存放容的是地址 0x8e 的資料

15樓:匿名使用者

首先在微控制器的資料儲存器裡,都是使用十六進位制數來標識每一個儲存單版元的,比如51微控制器中資料儲存權器是00h~7fh的,而對於一些儲存單元又使用了特殊的名稱,例如00h儲存單元,又是我們常用的r0,也就是說一個儲存單元可能有多個名稱叫法。然而微控制器的資料也是一十六進位制形式儲存的所以在理解上就容易混淆,在下面的解釋中,請看清每個資料前面的強調修飾語

而這兩條語句就是如果 此時r0裡面的內容是5dh,那麼mov 20h,r0,就是說吧r0裡面的【資料】5dh存入20h【單元】,而mov 20h,@r0是個暫存器間接定址,就是說暫存器r0裡面【資料】是5dh,那麼現在程式自動找到5dh這個【儲存資料的單元】,把5dh【單元】內的【資料】存入20h【單元】,其中5dh【單元】裡的【資料】你就不用管了

組合語言中#20h和#20的區別是什麼??

16樓:匿名使用者

#20h其中『#』是代表立即數,也就是實際的數20h,20h是十六進位制數,帶『h』表示是十六進位制數,不帶就是十進位制的。20h就是十進位制的32.

17樓:李學娘

組合語言中來#20h和#20的區別是源,#20h是16進位制的表示方法,這個bai數du

用我們習慣的10進製表示zhi是dao32;#20是10進位制的表示方法,這個數是20

1,微控制器組合語言中mov a,20h是什麼意思?

答:就51微控制器組合語言而言,該指令是直接定址mov a, 20h 功能是將地址為20h的片內ram一個位元組內容送入累加器

就80x86組合語言而方,該指令是立即定址mov ax, 20h 功能是將立即數20h送入累加器a這條指令,兩種機器的組合語言的定址方式容易被混淆。

18樓:匿名使用者

組合語言中#20h和#20的區別是,#20h是16進位制的表示方法,這個數用我們習慣的10進製表示是32;#20是10進位制的表示方法,這個數是20。

19樓:匿名使用者

#20h是16進位制的數值

#20 是十進位制的數值

比如:mov a,#20h 將十六進位制20h送到a裡面mov a,#20 將十進位制20送到a裡面

組合語言資料偽指令DUP用法,組合語言中的dup有什麼作用

10 dup 1 重複定義了10個字元素,初始值為1,佔用10 2 20個位元組。5 dup 重複定義了5個字元素 其初始值實際為0 佔用5 2 10個位元組 因此總共佔用30個位元組。具體分析 在彙編定義變數的時候會用到dup,變數名 型別 初值表,dup用於把一個相同值賦值若干次,重複次數 du...

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

在8086系列的組合語言中 in指令的意思是從埠中讀取資料,比如 in al,80h,將80h埠資料讀入到al中 out指令的意思是往埠輸出資料,比如 out 80h,al,將al輸出到80h埠 組合語言中,cpu對外設的操作通過專門的埠讀寫指令來完成 讀埠用in指令,寫埠用out指令。例子如下 i...

組合語言初學者,問個簡單的組合語言問題

一,不用堆疊 mov sp,2000h mov ax,3000h mov bx,5000h xchg ax,bx 二,用堆疊 mov sp,2000h mov ax,3000h mov bx,5000h push ax push bx pop ax pop bx 交換ax bx的內容,那裡用編寫程式...