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

如何定义一个汇编程序段

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

阅读全文

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

热点内容
资产交易指哪些 浏览:998
直拍晃撇技术有什么用 浏览:366
农商银行怎么核实房产信息 浏览:977
中国科学技术大学有哪些文科专业 浏览:976
王牌战争贸易区怎么交易 浏览:642
助学贷款保存信息多久 浏览:498
怎么判断一个程序员的能力 浏览:936
股票如何获取交易日时间 浏览:383
吕家传代理人有哪些 浏览:415
百果园小程序怎么使用 浏览:704
哪些药退出市场 浏览:888
如何让邮箱信息不要在微信显示 浏览:88
产品自用了怎么做账 浏览:267
程序员如何学习网络技术 浏览:872
高频交易对期货有什么好处 浏览:272
信息500指数包含哪些股票 浏览:387
如何代理鞋品牌 浏览:553
数据库s是什么 浏览:820
大江技术学院学费多少2020 浏览:150
女程序员可转什么行业 浏览:572