汇编语言子程序是如何定义的?

汇编语言子程序是如何定义的?,第1张

这样扮蚂定义的:

子程序名 PROC     NEAR|FAR

             .

              .

            RET

子程序名 ENDP

子程序名相当于标号,表示本过拆则程的符号地址。过程有NEAR和FAR两种类型,FAR型的过程可供段间调用,NEAR型过程仅供段内调用。

在一个过程中,至少要有一条返回指令RET,它可以书写在过程中的任何位置,但是过程执行的的最后一条指令一定是RET。

扩展资料:

注意事项

一、子程序调用指令

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

CALL指令的两个作用,1.将断点地址(CALL指令的下一条指令地址)压栈保存,2.转去子程序执行。

[NEAR PTR]可以省略。

二、返回指令

格式:RET     [N]

指令旅缺棚作用:实现子程序执行完后返回主程序的指令。从堆栈栈顶d出一个字数据(段内调用)送入IP作为返回地址。N是立即数,执行完RET之后,再将SP增加N,也叫“平栈”。

你好,

子程序的汇编代码只有在最终的Link阶段才会为代码和数据分配内存地址,因此指定代码段的地址一般是通过写一个link脚本来进行的。Link阶段时,编译器的Linker会读取你写的Link脚本,并且按照脚本的规定给代码分配地址。

根据

子程液哪序的汇编代码开发工具的不同,link脚本的语法和形闹薯码式也有所不同手模。ARM MDK,ARM ADS,Eclips+GCC,Linux GCC, ARM Realview等开发工具都支持Link脚本。

如果你英文还可以,建议你直接找到开发工具的Help手册去研究。如果你英语实在不行,也可以把开发工具名称和你代码的具体情况告诉我,我帮你看看。

1.将AX中的值以十六进制形式显示。

要求:主程序利用寄存器把AX的值传送给子程序。

在子程序中将AX中的值以十六进制形毁做式显示。

=====================================

DATA SEGMENT

D1 DW 13276 数: 0~65535

DATA ENDS

------------------------------

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START:

MOV AX, DATA

MOV DS, AX

------------------------------

MOV AX, D1取来数字.

CALL DISP_AX

MOV DL, 'H'

MOV AH, 2

INT 21H 输出H

------------------------------

MOV AH, 4CH

INT 21H 返回DOS

------------------------------

DISP_AX:

MOV BX, 1616进制,要除16

MOV CX, 4 求4位16进制数.

ABC:

CWD将AX扩展到DX

DIV BX

PUSH DX保存余数到堆栈.

LOOP ABC

MOV CX, 4 显示4位.

ASD:

POP DX

CMP DL, 10

JB A48

ADD DL, 7

A48:

ADD DL, 48

MOV AH, 2

INT 21H 输出.

LOOP ASD

RET

------------------------------

CODE ENDS

END START

===========================

2.编写子程序,完成的纤陵衡功能是将DL中的2位十六进制数转换为对应ASCII码。

说明:入口参数AL=待转换的2位十六汪如进制数

出口参数DX=转换后的ASCII码,(高字节对应高位、低字节对应低位)

举例:若AL=2AH,则DX=3241H。

0----9转换为30H----39H +30H

A---F转换为41H----4FH +30H+7H

------------------------------

AL_ASC_DX:

MOV AH, 0 要除16

MOV CL, 16求16进制数.

DIV CL

CMP AL, 10

JB A48

ADD AL, 7

A48:

ADD AL, 48

MOV DH, AL

CMP AH, 10

JB A482

ADD AH, 7

A482:

ADD AH, 48

MOV DL, AH

RET

------------------------------


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12332791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存