[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Например, таким макаром:
;------------------------------- codefile.a51 -------------------------------.chip 8052
.global init,code1,code2ref: .section
.org 0init:
mov sp,#60h
code1:
mov dpl,#0
mov dph,#0
code2:
setb p2.0
.ends
;----------------------------------------------------------------------------;------------------------------- datafile.a51 -------------------------------
.chip 8052
.extern init,code1,code2.org 0
data1:
.db 1,2,3,4
data2:
.dw init
.dw code1
.dw code2
.dw data2
.end
;----------------------------------------------------------------------------------------------------------- Log file -------------------------------
1. xasm51 codefile.a51 -dx2500 A.D. 8051 Macro Assembler - Version 4.01d
------------------------------------------------Input Filename : codefile.a51
Output Filename : codefile.objLines Assembled : 15 Assembly Errors : 0
-------------------------------------------------------------------------2. xasm51 datafile.a51 -dx
2500 A.D. 8051 Macro Assembler - Version 4.01d
------------------------------------------------Input Filename : datafile.a51
Output Filename : datafile.objLines Assembled : 13 Assembly Errors : 0
-------------------------------------------------------------------------3. link51
2500 A.D. Linker Copyright (C) 1985 - Version 4.01e
Input Filename :
Enter Offset For 'ref': <->Input Filename :
Enter Offset For 'CODE': <0>Input Filename :
Output Filename :
Library Filename :Options (D, S, A, M, Z, X, H, E, T, 1, 2, 3,
= Default) : dh ******************************************************************************
* L O A D M A P *
******************************************************************************
* Section Name Starting Address Ending Address Size *
******************************************************************************
* codefile.obj *
* -ref 0000 000A 000B *
* datafile.obj *
* CODE 0000 000B 000C *
******************************************************************************Link Errors : 0 Output Format : Intel Hex
-------------------------------------------------------------------------------------------------------- outfile.hex -----------------------------
:0C000000010203040000000300090004DA
:00000001FF
-------------------------------------------------------------------------
Должно получиться, если я Вас верно понял. Синтаксис Raisonance я не учитывал, главное - идея, с линкером AD2500 все получается. Линкер должен взять все внешние ссылки из подсунутого ему объектника codefile.obj, при этом, правда, приходится сгенерить секцию (в моем примере - ref), чтобы в объектнике она не появилась под именем code, иначе линкер принудительно включит в datafile.hex не только вычисленные по codefile ссылки (на запрос Enter offset for ref: отвечено "-", т.е. взять только ссылки), но и сам ее код.
Удачи!
E-mail: info@telesys.ru