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

如何定義一個匯編程序段

發布時間: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,也叫「平棧」。

閱讀全文

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

熱點內容
稅務違章信息未總結如何操作 瀏覽:245
程序如何調用富士通掃描儀 瀏覽:830
為什麼現在市場賣燒鴨那麼難 瀏覽:59
看守所什麼程序才能放人 瀏覽:30
網格代理是什麼 瀏覽:302
二手交易房產過戶稅費怎麼算 瀏覽:380
學習自然科學與技術要看什麼書 瀏覽:881
表2數據多次在表1中如何查出 瀏覽:273
excel如何數據平滑 瀏覽:378
匯拓客代理如何結算 瀏覽:725
設置裡面打開位置信息是什麼意思 瀏覽:610
長春職業技術學院學校環境怎麼樣 瀏覽:621
當今代理什麼項目致富快 瀏覽:611
夜跑的話下載個什麼程序 瀏覽:24
程序重復怎麼改 瀏覽:251
注塑產品有鐵粉怎麼調機 瀏覽:553
個人徵信單位信息多久消除 瀏覽:515
華為和夥伴如何協同保證交易信息 瀏覽:676
養生產品的logo圖怎麼做 瀏覽:476
權健產品怎麼樣視頻 瀏覽:31