組合語言中怎麼樣定義堆疊段和資料段

時間 2021-06-19 16:16:19

1樓:匿名使用者

stacks segment stack ;堆疊段dw 128 dup(?) ;注意這裡只有128個位元組

stacks ends

datas segment ;資料段;請在這裡定義您的資料

datas ends

codes segment ;**段assume cs:codes,ds:datasstart:

mov ax,datas ;初始化mov ds,ax

;請在這裡新增您的**

mov ax,4c00h ;退出程式int 21h

codes ends

end start

2樓:

assume cs:code,ss:stack,ds:data ; 段說明, 自己定義的code對應**段, stack對應堆疊段, data對應資料段

stack segment stack ; 堆疊段的定義byte 64 dup(0)

stack ends

data segment ; 資料段的定義msg byte 'hello world!$'

data ends

code segment ; **段的定義start:

mov ax,data

mov ds,ax

mov dx,offset msg

mov ah,9

int 21h

mov ax,4c00h

int 21h

code ends

end start

;**********===以上是一個常見的定義**********===

masm 5.0 以後也支援簡化定義如 .data 為資料段 .code表示**段, 形式如下:

.model small

.stack 200h ; 定義堆疊段大小.data ; 定義資料段szmsg db 'hello world!',13,10,'$'

.code ; **段的定義start:

mov ax,@data

mov ds,ax

mov es,ax

mov si,0

mov es:[bx+1+si],ah

lea dx,szmsg

mov ah,9

int 21h

;暫停,任意鍵關閉

mov ah,1

int 21h

mov ah,4ch ;結束,可以修改al設定返回碼int 21h

end start

3樓:收集板

棧直接在push pop中就可以使用。

資料段在.data裡面,可以初始化。

組合語言中,為什麼定義堆疊段的時候後面要多加一個stack 如:stack segment s 20

4樓:匿名使用者

assume cs:code,ss:stack,ds:data ; 段說明, 自己定義的code對應**段, stack對應堆疊段, data對應資料段

stack segment stack ; 堆疊段的定義byte 64 dup(0)

stack ends

data segment ; 資料段的定義msg byte 'hello world!$'

data ends

code segment ; **段的定義start:

mov ax,data

mov ds,ax

mov dx,offset msg

mov ah,9

int 21h

mov ax,4c00h

int 21h

code ends

end start

;**********===以上是一個常見的定義**********===

masm 5.0 以後也支援簡化定義如 .data 為資料段 .code表示**段, 形式如下:

.model small

.stack 200h ; 定義堆疊段大小.data ; 定義資料段

szmsg db 'hello world!',13,10,'$'

.code ; **段的定義

start:

mov ax,@data

mov ds,ax

mov es,ax

mov si,0

mov es:[bx+1+si],ah

lea dx,szmsg

mov ah,9

int 21h

;暫停,任意鍵關閉

mov ah,1

int 21h

mov ah,4ch ;結束,可以修改al設定返回碼int 21h

end start

組合語言中**段,資料段,附加段,堆疊段這四個段中哪個是唯一的?

5樓:匿名使用者

這要針對使用的具體記憶體模式而言,不深究的話,可以認為堆疊段是唯一的,阿門。。。

6樓:匿名使用者

附加,資料肯定不是唯一的,然後資料段。

一個段的最大長度為64k,如果**超過64k要定義多個**段,可以通過遠呼叫,或遠跳轉,到...

只有堆疊了

關於組合語言中的loop指令,關於組合語言中的LOOP指令

這個程式迴圈一次,是由cx存放的。cx中存放的是迴圈的次數 程式設計計算2 12 assume cs code code segment mov ax,2 mov cx,11 s add ax,ax loop s mov ax,4c00h int 21h code ends end執行loop s時...

組合語言XOR命令什麼意思,組合語言中,指令XOR CX,CX表示什麼意思

凡筱雲 組合語言xor命令是異或的意思,異或,英文為exclusive or,或縮寫成xor 異或 xor 是一個數 算符。它應用於邏輯運算。異或的數學符號為 計算機符號為 xor 異或可逆運算。1 xor 1 0,0 xor 0 0,1 xor 0 1,0 xor 1 1。a xor b的運算方法...

請問組合語言中符號代表什麼,在組合語言裡 符號代表什麼意思?

離 f最近的一個 標號 就是把最近的 標號所標出的地址值入棧 是間接定址用的,可以理解為取地址,一般後面為r0 r7 兆初晴謬美 看圖你就會明白。實際上標號x1的首地址為ascii碼c的字單元地址,x2的首地址開始於db16dup 語句,緊接著x1的終止地址,那麼它的首地址相對於x1偏移4 1個位元...