組合語言檢測點3 1

2021-10-23 04:43:17 字數 1267 閱讀 8610

建議先自己思考問題的答案,不懂則返回看書

2.記憶體中的情況如下圖所示

各暫存器的初始值: cs=2000h,ip=0,ds=1000h,ax=0,bx=0;

(1)(2)cpu執行的指令序列,及cs、ip、相關暫存器的值

;cs=2000h,ip=0h

mov ax,6622h ;執行後cs=2000h,ip=3h,ax=6622h

jmp 0ff0:0100 ;執行前(讀取後)cs=2000h, ip=8h,執行後cs=0ff0h,ip=0100h (即cs=1000h,ip=0h)

mov ax,2000h ;執行後cs=1000h,ip=3h,ax=2000h

mov ds,ax ;執行後cs=1000h,ip=5h,ds=2000h

mov ax,[0008]

;執行後cs=1000h,ip=8h,ax=c189h

mov ax,[0002]

;執行後cs=1000h,ip=bh,ax=ea66h

(3)程式和資料是沒有區別的,都是以二進位制的形式儲存,如何確定呢。

可以理解為段位址+偏移位址 指向的是資料,cs+ip 指向的是程式

組合語言檢測點10 4

建議先自己思考問題的答案,不懂則返回看書 這兒用到了bp,除了之前這樣用過bp外 bx bp 還會在棧中用到。比如說,堆疊中壓入了很多資料或者位址,你肯定想通過sp來訪問這些資料或者位址,但sp是要指向棧頂的,是不能隨便亂改的,這時候你就需要使用bp,把sp的值傳遞給bp,通過bp來尋找堆疊裡資料或...

組合語言檢測點11 3

建議先自己思考問題的答案,不懂則返回看書 這兩道題太簡單了,但為了完整的系列,還是寫寫,沒必要分析。a,b 表示此範圍包含a,b a,b 表示此範圍不包含a,b 1 補全下面的程式,f000 0處的32個位元組中,大小在 32,128 的資料的個數。mov ax,0f000h mov ds,ax m...

《組合語言》檢測點9 2

補全程式,利用jcxz指令,實現在記憶體2000h段中查詢第乙個值為0的位元組,找到後,將它的偏移位址儲存在dx中。assume cs code code segment start mov ax,2000h mov ds,ax mov bx,0 s jmp short s ok mov dx,bx...