注册 登录
编程论坛 汇编论坛

多模块链接 Link 问题

proof1 发布于 2016-03-31 09:07, 5561 次点击
题目:对存放在地址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多模块的命令行,学习下要求和格式。
0 回复
1