A51 MACRO ASSEMBLER LR2_3A 04/01/2011 22:15:00 PAGE 1 MACRO ASSEMBLER A51 V8.01 OBJECT MODULE PLACED IN lr2.3a.OBJ ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE lr2.3a.a SET(SMALL) DEBUG EP LOC OBJ LINE SOURCE ---- 1 Dseg at 8 ;сегмент данных в Data 0008 2 X: ds 1 ---- 3 Xseg at 0 ;сегмент данных в Xdata 0000 4 Yy: ds 8 ;char xdata yy[8]; //результат преобразования во внешней памяти ---- 5 Cseg at 0 ;начало программного сегмента, после сброса или включения питания 0000 8003 6 Jmp start ;подразумевается команда старта на начало программы 0002 313233 7 Y: db "123" ;текстовая константа в ASCII-коде 8 ;for (i=0; i<3; i++) - комментарии из программы на С 0005 E4 9 start: clr a ;подготовка параметров цикла 0006 F508 10 Mov x,a 0008 7803 11 Mov r0,#3 000A 758200 12 Mov DPL,#yy ;ограничимся младшим байтом адреса - старший DPH=0 13 000D 14 Cikl: ; x=x*10+(y[i]&0x0f); 000D E508 15 Mov a,x 000F 75F00A 16 Mov b,#10 0012 A4 17 Mul ab 0013 F5F0 18 Mov b,a 0015 E4 19 Clr a 0016 93 20 movc a,@a+dptr 0017 A3 21 Inc dptr 0018 540F 22 Anl a,#0x0f 001A 25F0 23 Add a,b 001C F508 24 Mov x,a 001E D8ED 25 Djnz r0,cikl 26 0020 7808 27 Mov r0,#8 0022 28 Cikl2: ;yy[i]= (x&0x01) ? '1' : '0'; 0022 8882 29 Mov dpl,r0 0024 E508 30 Mov a,x 0026 5401 31 Anl a,#01 0028 4430 32 Orl a,#0x30 002A F0 33 Movx @dptr,a 34 ;x>>1 002B E508 35 Mov a,x ; x=x>>1; 002D 03 36 Rr a 002E F508 37 Mov x,a 0030 D8F0 38 Djnz r0,cikl2 0032 00 39 Nop 40 end A51 MACRO ASSEMBLER LR2_3A 04/01/2011 22:15:00 PAGE 2 SYMBOL TABLE LISTING ------ ----- ------- N A M E T Y P E V A L U E ATTRIBUTES B. . . . . . . . . D ADDR 00F0H A CIKL . . . . . . . C ADDR 000DH A CIKL2. . . . . . . C ADDR 0022H A DPL. . . . . . . . D ADDR 0082H A START. . . . . . . C ADDR 0005H A X. . . . . . . . . D ADDR 0008H A Y. . . . . . . . . C ADDR 0002H A YY . . . . . . . . X ADDR 0000H A REGISTER BANK(S) USED: 0 ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)