6.1在**段中使用資料
dw 定義字型資料:define word
db 定義位元組資料:define byte
assume cs:codesg
code segment
dw 0123h,0456h(偏移位址從0、2、4、6...)
start:mov bx,0
mov ax,0
mov cx,8
s:add ax,cs:[bx]
add bx,2
loop s
mov ax,4c00h
int 21h
code ends
end start
在定義資料的時候,一定要指定程式的入口,否則cpu容易將資料混淆成指令。
end:除了通知編譯器程式結束外,還可以通知編譯器程式的入口在什麼地方。
利用棧實現逆序
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h....
dw 0,0,0....
start:mov ax,cs
mov ss,ax
mov sp,32
mov bx,0
mov cx,8 ;設定迴圈次數
s:push cs:[bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0:pop cs:[bx]
add bx,2
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
6.3將資料、**、棧放入不同的**段
時刻要記住8086(16位)中的段容量不能大於64kb(2^5)
assume cs:code,ds:data,ss:stack
data segment
...data ends
stack segment
...stack ends
code segment
...code ends
data段使用
mov ax,data
mov ds,ax
data:[6]
組合語言筆記06 包含多個段的程式
在作業系統的環境下,合法地通過作業系統取得的空間都是安全的。程式取得所需空間的方法有兩種 一是在引導程式的時候為程式分配,再就程式在執行過程中向系統申請。對於第一種方式,我們在程式中定義將要處理的資料,這些資料被編譯 連線程式作為程式的一部分寫入可執行檔案中。當可執行檔案的程式載入到記憶體中,這些資...
《組合語言》學習(六)多個段的程式
組合語言 第六章主要講述 如何編寫包含多個段的彙編源程式 本章的文字內容不多,主要通過程式設計實踐來理解彙編源程式架構的含義,通篇學下來,我覺得有以下幾點需要理解清楚 1,這裡所說的多個段 segment 從彙編 程式 的角度來說,它指的是程式所占用的記憶體空間的劃分,大致分為 data segme...
組合語言讀書筆記(6 包含多個段的程式)
組合語言 第三版,王爽 讀書筆記 dw 即 define word 定義字型資料,存放在 段中 cs 示例程式 assume cs code code segment dw 0123h,0456h,0789h,0abch,0defh,ofedh,0cbah,0987h start mov bx,0 ...