組合語言答案 王爽版

2021-04-19 18:04:40 字數 3089 閱讀 9346

王爽組合語言答案(本答案是自己做的

所有題目已在deubg中除錯;但

難免有差錯,發現的提醒我 

email:[email protected]謝謝)

第一章檢測點1.1

1) 13

(2) 1024,0,1023

(3) 8192,1024

(4) 2^30,2^20,2^10

(5) 64,1,16,4

(6) 1,1,2,2,4

(7) 512,256

(8) 二進位制 

注:符號'^'指求冪運算(如: 2^30指2的30次方)

第二章檢測點2.1

(1)大家做這題的時候一定要注意,要看清楚數制,比如是二進位制還是十進位制,還是十六進,我當時沒注意,做錯了!!呵呵!!

第一空:f4a3h

第二空:31a3h

第三空:3123h

第四空:6246h

第五空:826ch

第六空:6246h

第七空:826ch

第八空:04d8h

第九空:0482h

第十空:6c82h

第十一空:d882h

第十二空:d888h

第十三空:d810h

第十四空:6246h

(2)mov ax,2

add ax,ax

add ax,ax

add ax,ax

檢測點2.2

(1)00010h 1000fh

(2)0001h  2000h

檢測點2.3

共修改了4次ip 第一次mov ax,bx 第二次是sub ax,ax 第三次是jmp ax 第四次是執行 jmp ax 最後ip的值是0 因為ax的值是零!!

檢測點3.1

(1)第一空:2662h

第二空:e626h

第三空:e626h

第四空:2662h

第五空:d6e6h

第六空:fd48h

第七空:2c14h

第八空:0000h

第九空:00e6h

第十空:0000h

第十一空:0026h

第十二空:000ch

注意:ax中訪問的是字型資料 ,高位址存放高位元組,低位址存放低位元組!!(一定要小心)

(2)①寫出cpu的執行序列 

mov  ax,6622

jmp 0ff0:0100

mov ax,2000h

mov ds,ax

mov ax ,[0008]

mov ax,[0002] ②

指令執行順序

暫存器cs

ipds

axbx

初值 2000h

0000

1000h00

mov ax,6622h

2000h

0003

1000h

6622h

0000

jmp 0ff0:0100

1000h

0000

1000h

6622h

0000

mov ax,2000h

1000h

0003

1000h

2000h

0000

mov ds,ax

1000h

0005

2000h

2000h

0000

mov ax,[0008]

1000h

0008

2000h

c389h

0000

mov ax,[0002]

1000h

000b

2000h

ea66h

0000

③資料和程式在計算機中都是以二進位制的形式存放的,在區別程式和資料時,關鍵是看段位址,如果段位址是ds段,說明該記憶體中存放的是資料,如果段位址是cs段,說明該記憶體中存放的是程式指令 

檢測點3.2

(1)mov ax,2000h

mov ss,ax

mov sp,0010h

(2)mov ax,1000h

mov ss,ax

mov sp,0000h

注意:出棧時和入棧時的順序,空棧時棧頂指向的是最高端位址!棧滿是棧頂指標指向的是最底端位址!!

2。實驗任務

(1)5bea

5cca 

30f0

6023

00fe   2200:0100   5cca

00fc   2200:00fe   6023

00fe   6023

0100   5cca 

00fe   2200:0100   30f0

00fc   22000:00fc  2e39 

(2)因為在debug 中t命令在執行修改暫存器ss的指令時,會產生中斷,將現場保護起來,下一條指令也緊接著被執行!!

實驗三:

該實驗自己做吧 我做出來的東西只是我pc上的資料,可能在別的pc做出來的結果會不一樣,在加之資料太多,我做了兩次資料都沒有完整的記下來,只好作罷!!

實驗四: [bx]和loop的使用

(1)assume cs:code 

code segment

mov ax,0

mov ds,ax

mov cx,64

mov bx,200h s:

mov ds:[bx],ax

inc bx

inc ax

loop s

mov ax,4c00h

int 21h

code ends

end(2)

如上題  我一不小心寫出來就是九條指令了!!!呵呵!!

(3)具體做法是將那段指令寫道記憶體中,察看其在記憶體中的起始位址和終止位址,然後將該記憶體的內容複製到0:200處就可以了!!

檢測點6.1

(1)mov cs:[dx],ax

(2)第一空:cs

第二空:26或者1ah

第三空:pop cs:[dx]

《組合語言》(王爽)課後答案

第二章 暫存器.4檢測點2.1.4 檢測點2.2.4 檢測點2.3.5 實驗1 檢視cpu 和記憶體,用機器指令和彙編指令程式設計 52.實驗任務 9第三章 暫存器.12檢測點3.2 14 實驗2 用機器指令和彙編指令程式設計 152.實驗任務 15第四章 第乙個程式 16實驗3 程式設計,編譯連線...

組合語言 王爽

cpu有三條匯流排 位址 資料 控制線 位址匯流排確定儲存單元 控制匯流排傳送指令 資料匯流排 傳輸資料 cpu n個位址線 位址匯流排寬度為n 可以尋找2 n個記憶體單元 儲存單元 0開始編號,乙個儲存單元可以儲存乙個byte 8086cpu有16根位址線 1bit就是一根位址線 注意 儲存器以b...

王爽《組合語言》實驗九答案

assume cs code,ds data 段 code segment start mov ax,data mov ds,ax mov ax,0b864h 第n行首址 b8000h 0a0h n 1 10h mov es,ax 初始化 mov bx,0 mov cx,3 外迴圈3次 again2...