組合語言IP指標問題

2022-07-13 15:25:15 字數 1217 閱讀 5319

1樓:匿名使用者

8個通用暫存器:

資料暫存器:ax,bx,cx,dx

指標暫存器:sp(堆疊指標),bp(基址指標)

變址暫存器:si(原地址),di(目的地址)

1、通用暫存器

資料暫存器,指標暫存器和變址暫存器統稱為通用暫存器。這些暫存器除了各自專門用途外,它們均可用於傳送和暫存資料,可以儲存算術邏輯運算中的運算元和運算結果。

(1)資料暫存器

資料暫存器主要用來儲存運算元或運算結果等資訊,它們的存在節省了為存取運算元所需佔用匯流排和訪問儲存器的時間。

(2)變址和指標暫存器

變址和指標暫存器主要用於存放某個儲存單元地址的偏移,或某組儲存單元地址的偏移,即作為儲存器(短)指標使用。作為通用暫存器,它們可以儲存16位算術邏輯運算中的運算元和運算結果,有時運算結果就是需要的儲存單元地址的偏移。

2、控制暫存器(2個)

(1)指令指標暫存器

8086/8088cpu中的指令指標ip也是16位的。

指令指標ip給出接著要執行的指令在**段中的偏移。

(2)標誌暫存器

8086/8088cpu中有一個16位的標誌暫存器,包含了9個標誌,主要用於反映處理器的狀態和運算結果的某些特徵。6個條件標誌+3個方向標誌

3、段暫存器(4個)

8086/8088cpu依賴其內部的四個段暫存器實現定址1m位元組實體地址空間。

8086/8088把1m位元組地址空間分成若干邏輯段,當前使用的段值存放在段暫存器中。

由於8086/8088有這四個段暫存器,所以有四個當前使用段可以直接存取,這四個當前段分別稱為**段,資料段,堆疊段和附加段。

(1)**段

(2)資料段

(3)堆疊段

(4)附加段請參考

2樓:

用t單步除錯的時候,遇到中斷就會進去執行,所以ip就會跳到相應的段去了,所以可以在遇到中斷的時候,可以利用g,p命令,執行到中斷後面的位置。

不過我覺得debug畢竟有點太老了,操作比較麻煩,除錯c的話,試試codeview吧,我感覺挺好用的

3樓:匿名使用者

你不是在debug下單步t除錯的嗎,要是ip跳到另段去了,你要是想ip回到當前繼續,,可以按r ip 目前便宜地址,,就可以了

4樓:匿名使用者

當執行loop、int指令時,用p除錯,就不會跳到別的段了。

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

一,不用堆疊 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的內容,那裡用編寫程式...

關於組合語言跳轉出範圍的問題,組合語言跳轉主程式,結果程式超出地址範圍是怎麼回事

像這種 jmp maina1 指令,轉移的範圍在 127位元組之內,程式編寫大了,超出範圍是常有的事。可以在其範圍之內,加個 接力點 再用ljmp轉移一次即可。跳轉出範圍,理論大家都講了,書上也很詳細,來段實際的吧,請把此段程式 新改 maind2 jb p3.5,maind3 jmp s14 ma...

什麼是組合語言,什麼是彙編和組合語言?

組合語言就是計算機語言,它是有0,1組成的.通俗的說就是我們人和計算機交流的語言.介於機器語言和高階語言之間的一種 什麼是彙編和組合語言?彙編語copy言是一種低階計算bai機程式語言,說 低階du 並不是指語言的功能和複雜程度,而是它zhi出現在計算機發展史dao的早期,但現在仍廣泛應用於計算機開...