多模块链接 Link 问题

proof1 2016-03-31 08:18:15
题目:对存放在地址A起的5个数,用转ASCII码子程序转换代码,并存入B地址起的单元中。使用段间调用。源程序有2个模块,5-23.asm 和 subprog.asm。

5-23.asm
---------------------------------
DATA SEGMENT
A DB 4,6,8,5,7
B DB 5 DUP(?)
C EQU 5
DATA ENDS

PUBLIC A
EXTRN SPRG:FAR

CODE1 SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODE1, DS:DATA
START: MOV AX,DATA
MOV DS,AX

MOV DI,0
MOV SI,0
MOV CX,C
LP: CALL SPRG
MOV B[DI],AL
INC DI
INC SI
LOOP LP

MOV AH,4CH
INT 21H
CODE1 ENDS
END START
---------------------------------

subprog.asm
---------------------------------
EXTRN A:BYTE
CODE2 SEGMENT PARA PUBLIC 'CODE'
SPRG PROC FAR
ASSUME CS:CODE2
PUBLIC SPRG
STT: MOV AL,A[SI]
ADD AL,30H
RET
SPRG ENDP
CODE2 ENDS
END
---------------------------------
问题:1、源程序是否有误?
2、分别编译5-23.asm 和 subprog.asm,生成5-23.obj 、 subprog.obj两个文件。为何链接时出错?
Tlink 5-23.obj+subprog.obj
3、请举几个Tlink多模块的例子,学习下要求和格式。
...全文
278 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQqun238564439 2016-04-07
  • 打赏
  • 举报
回复
有可能是CPUde
zara 2016-03-31
  • 打赏
  • 举报
回复
上面 2. 里不是说了吗,是用空格而不是 + 符号,如 tlink 5-23.obj subprog.obj tlink 自己的帮助也有说明的。
proof1 2016-03-31
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
3. 多模块,也就是这样了。
我的Tlink格式对吗?还是参数有问题?
zara 2016-03-31
  • 打赏
  • 举报
回复
1. 源程序上没问题吧,编译可以通过;功能大致也正常。
2. 两个 obj 名间不用 + 而是用空格分开的吧。
3. 多模块,也就是这样了。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧