程式取得所需空間的兩種方法:
1.在引導程式的時候為程式分配(討論)——通過在源程式中頂一段
2.程式在執行的過程中向系統申請
實驗五(1)
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4c00h
int 21h
code ends
end start
cpu執行程式,程式返回前,cs=0bae,ss=0bad,ds=0bac
=>cs=x,data=x-2,stack=x-1
實驗五(5)
編寫code,將a段和b段中的資料依次相加,將結果存到c中
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov ds,ax
mov dx,0
mov cx,8
s:mov ax,b
mov es,ax
mov al,ds:[bx]
mov ah,0
mov dx,ax
mov al,es:[bx]
add dx,ax
mov ax,c
mov es,ax
mov es:[bx],dx
add bx,1
loop s
mov ax,4c00h
int 21h
code ends
end start
感覺好長,不知道有沒有辦法短一點
-d 0bac:0 8
0bac:0000 01 02 03 04 05 06 07 08-00 .........
-d 0bad:0 8
0bad:0000 01 02 03 04 05 06 07 08-00 .........
-d 0bae:0 8
0bae:0000 00 00 00 00 00 00 00 00-00 .........
-g 0028
ax=0bae bx=0008 cx=0000 dx=0010 sp=0000 bp=0000 si=0000 di=0000
ds=0bac es=0bae ss=0bac cs=0baf ip=0028 nv up ei pl nz na po nc
0baf:0028 b8004c mov ax,4c00
-tax=4c00 bx=0008 cx=0000 dx=0010 sp=0000 bp=0000 si=0000 di=0000
ds=0bac es=0bae ss=0bac cs=0baf ip=002b nv up ei pl nz na po nc
0baf:002b cd21 int 21
-pprogram terminated normally
-d 0bae:0 8
0bae:0000 02 04 06 08 0a 0c 0e 10-00 .........
實驗五(6)
編寫code**,用push指令將a段中的word資料,逆序儲存到b段中
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
start: mov ax,b
mov ss,ax
mov sp,16
mov ax,a
mov ds,ax
mov bx,0
mov cx,8
s:push ds:[bx]
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
彙編筆記 第六章
title 彙編筆記 第六章 date 2018 12 26 17 44 59 tags 先看程式 assume cs codesg codesg segment dw 0123h,0456h,0789h,0abch,0fedh,0cbah,0987h start mov bx,0 mov ax,0...
組合語言(王爽)第六章
6.1 在 段中使用資料 程式設計以下8個資料的和,結果存在ax暫存器中,用迴圈累加的方式 想用迴圈,就需要把這些資料儲存在一組位址連續的記憶體單元中,之前提到過應該讓系統來分配空間,因此我們在程式中定義希望處理的資料,這些資料最終會成為程式的一部分寫到可執行檔案中,可執行檔案載入到記憶體中後,這些...
王爽 組合語言 第六章檢測題分析
一 在intel8086環境下,下列說法合理的是 3 1 組合語言程式載入記憶體後處於64k空間以外的資料和指令將無法使用和執行。2 乙個資料段命名為data,此標號代表這個資料段在記憶體中的起始位址。3 如果載入的程式沒有返回語句,那麼當程式 執行完畢,將繼續讀取後續記憶體空間 儲存的指令到cpu...