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

2021-06-19 16:16:00 字數 2769 閱讀 9051

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要定義多個**段,可以通過遠呼叫,或遠跳轉,到...

只有堆疊了

組合語言堆疊段是什麼意思,組合語言的堆疊段是什麼意思

在記憶體開出的,先進後出的一段儲存區域。因為資料的存放象碼貨一樣,所以叫堆疊。進入山洞去探險,重要的是要 記住 走過的路。記在腦子裡,或者寫在內紙上,都可以。這就是容堆疊段。這些記憶,進洞時,順次記住,出洞,順次想起。組合語言堆疊段是什麼意思?在堆疊段裡面,就是儲存一些 記錄 的地方。專有一個 堆疊...

組合語言中si表示地址還是內容,組合語言中 SI 表示地址還是內容

si 是暫存器間接定址,它是指si中地址的內容,所以是具體內容,si是地址。在x86彙編中,中括號就相當於c語言的星號,即指標,mov x,地址 相當於x p一樣,是取內容。若mov si 100 則si代表 100 si 代表 地址為100的記憶體單元中的內容 記住,有的代表記憶體單元裡面 的內容...

組合語言中db是什麼意思,組合語言中DB是什麼意思?

db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。表示式中可包含符號 字串 或表示式等項,各個項之間用逗號隔開,字串應用引號括起來。括號內的標號是可選項,如果使用了標號。db的作用 在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 1mess...