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

如何定义一个汇编程序段

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

阅读全文

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

热点内容
学生注册企业微信程序是什么 浏览:159
回信息一个嗯和嗯嗯有什么区别 浏览:457
日本的内燃机车市场什么样子的 浏览:654
相册制作小程序怎么做 浏览:556
怎么样用ug设计产品 浏览:740
如何一个表的数据导到另一个表里 浏览:41
仓库保管技术有哪些 浏览:348
申请离婚的程序有什么风险 浏览:500
茅台代理商有多少家 浏览:588
交易账单怎么审核 浏览:912
腾讯朋友圈广告代理商有哪些 浏览:147
区域性保险代理怎么升级成全国性 浏览:181
外汇代理商如何入驻京东 浏览:420
玉石交易市场都在哪里 浏览:326
怎么找广告代理商做宣传 浏览:769
江西有什么货运代理名称 浏览:274
公众号和微信小程序怎么做 浏览:529
体育资讯类产品如何提升用户留存 浏览:324
如何自己去市场 浏览:1002
金秋装扮怎么交易 浏览:181