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

2022-08-28 01:40:29 字數 3762 閱讀 1550

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裡面

組合語言的DW是什麼意思,組合語言中的DW怎麼用,能舉個例子說明一下嗎

dw 是定義2位元組空間的意思。dw屬於彙編的一個偽指令,dw定義字型別變數,一個字資料佔2個位元組單元,讀完一個,偏移量加2。db定義位元組型別變數,一個位元組資料佔1個位元組單元,讀完一個,偏移量加1。dd定義雙字型別變數,一個雙字資料佔4個位元組單元,讀完一個,偏移量加4。彙編指令既不控制機器...

組合語言裡的清零(答對給分,20以上)

還有就是將偏移置零的時候將暫存器清零 你舉的那個例子裡的xor bx,bx就是將偏移置零的,bx不是定址的暫存器嘛 如果你要用一個暫存器計數,首先要將這個暫存器清零,然後在迴圈過程中加一,然後當暫存器的數為某個數的時候就退出迴圈,不過好像基本沒有這麼用的,舉個例子而已 如果之前有賦值指令,也就是你舉...

組合語言進位與借位的問題

你這裡混淆了兩個概念,無符號數和有符號數。如果你希望得到2 3 1,那麼你應該認為2和 3都是有符號數,既然是有符號數,是否產生借位要看of標誌位,即溢位標誌位 如果你認為2和 3的補碼對應的無符號數253都是無符號數,那麼它們之和為255,沒有產生進位。所以,當你判斷有符號數的時候,不應該看cf來...