导航:首页 > 软件知识 > 如何定义一个汇编程序段

如何定义一个汇编程序段

发布时间: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,也叫“平栈”。

阅读全文

与如何定义一个汇编程序段相关的资料

热点内容
增益开关技术是什么 浏览:499
隐藏的程序什么也看不见 浏览:817
工程技术专业能考什么证书 浏览:358
百能的不锈钢橱柜市场什么价位 浏览:209
三岔口菜市场在哪里 浏览:308
跳蚤市场图书怎么做 浏览:233
七月份的数据有什么用 浏览:580
废锡渣多少钱一公斤市场价 浏览:562
淘手游交易金额多少才能立案 浏览:782
如何做好带货小程序 浏览:75
2020年周边有哪些新建农贸市场 浏览:283
涂料的产品怎么样 浏览:584
怎么多循环一次程序 浏览:159
大商所交易系统是什么 浏览:387
徐步天交易要多少天 浏览:22
哪个手机app可以模拟交易美股 浏览:819
爱情虚假交易是什么意思 浏览:459
番禺哪里有鲜花批发市场 浏览:565
山东修正健康饮品怎么代理 浏览:788
数据比较多复制是哪个键 浏览:476