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

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

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

只有堆疊了

組合語言中ah和AH代表什麼,請問組合語言中001AH加0026H是多少怎麼算的A和H分別代表什麼呀還有CH什麼意思

ah和ah是一個意思,只是大小寫區分 意思是ax 16位 暫存器的高八位,低八位是al暫存器 al邏輯運算 這部分指令用於執行算術和邏輯運算,包括加法指令add adc 減法指令sub sbb 加一指令inc 減一指令dec 比較操作指令cmp 乘法指令mul imul 除法指令div idiv 符...

請問大家組合語言中子程式呼叫指令和跳轉指令有什麼區別?謝

簡單點說,call指令在跳轉前儲存當前指令地址,而jmp一類的指令不儲存當前指令的地址。詳細點說 call指令在跳轉前會在棧中儲存當前的程式計數器 ip 的值 有必要的話還要儲存cs 儲存完ip的值後,再去執行跳轉指令。即相當於 push cs 沒有這種指令,有沒有這一句還要看呼叫的型別 far n...

資料結構的演算法在VB程式語言中怎麼樣實現

每門bai 程式語言其實本質上是相du似的,只zhi是語法上有些差別。數dao據結內構並不歸為哪一種語言容,資料結構是每一門語言的根基,只要你把資料結構學好了,那麼你學任何其他的程式語言只要把他的語法搞清楚就可以了。就哪一樓的排序問題來說把,把幾個數進行排序,那麼你只要搞懂了資料結構中的排序演算法,...