導航:首頁 > 軟體知識 > 如何定義一個匯編程序段

如何定義一個匯編程序段

發布時間:2023-06-01 17:50:06

⑴ 匯編程序段中數據段的定義

DATASEGMENT
STR1DB'whatisyourname?',13,10,'$'
CNEQU$-STR1
STR2EQUSTR1+CN-5
DATAENDS

CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA
START:MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVDX,OFFSETSTR1
MOVAH,9
INT21H
MOVSI,OFFSETSTR1
MOVDI,OFFSETSTR2
MOVCX,CN
ADDSI,CN-1
ADDDI,CN-1
STD
REPMOVSB
MOVDX,OFFSETSTR2
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART


教材中有詳細的介紹,請認真閱讀,多復習。
es是附加數據段段地址,程序中是將數據段和附加數據段同段。
str1是21個位元組。
cn和str2在這里都是常量。
數據段中只定義了存儲區str1。(但又將str2當存儲區使用,這種用法少見,不要學!)

============================================================
以上操作的問題,str2並未申請緩沖區,在執行時有越界的風險!
============================================================
以下是規范的程序:
DATASEGMENT
STR1DB'whatisyourname?',13,10,'$'
CNEQU$-STR1
STR2DBCNDUP(?)
DATAENDS

CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:DATA
START:MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,STR1
MOVAH,9
INT21H
LEASI,STR1
LEADI,STR2
MOVCX,CN
ADDSI,CN-1
ADDDI,CN-1
STD
REPMOVSB
LEADX,STR2
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART

⑵ 匯編語言子程序是如何定義的

這樣定義的:

子程序名 PROC NEAR|FAR

拆則 .

.

RET

子程序名 ENDP

子程序名相當於標號,表示本過程的符號地址。過程有NEAR和FAR兩種類型,FAR型的扮螞過程可供段間調用,NEAR型過程僅供段內調用。

在一個過程中,至少要有一條返回指令RET,它可以書寫在過程中的任何位置,但是過程執行的的最後一條指令一定是RET。

(2)如何定義一個匯編程序段擴展閱讀:

注意事項

一、子程序調用指令

格式:CALL [NEAR PTR] 子程序旅缺棚名

CALL指令的兩個作用,1.將斷點地址(CALL指令的下一條指令地址)壓棧保存,2.轉去子程序執行。

[NEAR PTR]可以省略。

二、返回指令

格式:RET [N]

指令作用:實現子程序執行完後返回主程序的指令。從堆棧棧頂彈出一個字數據(段內調用)送入IP作為返回地址。N是立即數,執行完RET之後,再將SP增加N,也叫「平棧」。

閱讀全文

與如何定義一個匯編程序段相關的資料

熱點內容
塗料的產品怎麼樣 瀏覽:582
怎麼多循環一次程序 瀏覽:158
大商所交易系統是什麼 瀏覽:386
徐步天交易要多少天 瀏覽:21
哪個手機app可以模擬交易美股 瀏覽:817
愛情虛假交易是什麼意思 瀏覽:458
番禺哪裡有鮮花批發市場 瀏覽:563
山東修正健康飲品怎麼代理 瀏覽:786
數據比較多復制是哪個鍵 瀏覽:474
批發市場的東西為什麼這么便宜 瀏覽:896
雪肌麗仁產品怎麼樣 瀏覽:274
怎麼做麥吉麗的代理 瀏覽:497
產品資質證書是什麼 瀏覽:511
百度文庫為什麼下載的是數據 瀏覽:810
快遞信息如何查商家 瀏覽:773
鋪面信息簡介怎麼寫 瀏覽:561
理財基金介紹產品怎麼買 瀏覽:41
代理網店需要哪些手續 瀏覽:273
怎麼樣發信息呢 瀏覽:236
羅布樂思技術困難怎麼回事 瀏覽:822