A51 MACRO ASSEMBLER SINA 08/13/2015 20:38:11 PAGE 1 MACRO ASSEMBLER A51 V8.02b OBJECT MODULE PLACED IN sina.OBJ ASSEMBLER INVOKED BY: C:\Keil51\C51\BIN\A51.EXE sina.a SET(SMALL) DEBUG EP LOC OBJ LINE SOURCE 1 2 REG 3 x equ r0 REG 4 y equ r1 REG 5 si equ r2 REG 6 xx equ r3 7 ---- 8 cseg at 0 0000 802E 9 jmp main ---- 10 cseg at 5 0005 11 sin: 12 0005 E9 13 mov a,y 0006 75F00D 14 mov b,#13 0009 A4 15 mul ab ;((y*13)>>8) 000A ABF0 16 mov xx,b 17 000C E9 18 mov a,y 000D 75F006 19 mov b,#6 ;((y*6)>>8) 0010 A4 20 mul ab 0011 747F 21 mov a,#0x7f 0013 95F0 22 subb a,b 0015 8BF0 23 mov b,xx 0017 A4 24 mul ab ;si 0018 AAF0 25 mov si,b 26 ;si=(((y*43)>>8)*(0x7f-si))>>8; 001A E9 27 mov a,y 001B 75F02B 28 mov b,#43 001E A4 29 mul ab ;((y*43)>>8) 001F ABF0 30 mov xx,b 0021 747F 31 mov a,#0x7f 0023 9A 32 subb a,si 0024 A4 33 mul ab ;si 0025 AAF0 34 mov si,b 35 ;si=(x*(0xff-si))>>8; 0027 74FF 36 mov a,#0xff 0029 9A 37 subb a,si 002A 88F0 38 mov b,x 002C A4 39 mul ab ;si=b 002D AAF0 40 mov si,b 002F 22 41 ret 42 0030 43 main: 44 ;for(x=0; x<=0x07f; x++) 0030 7800 45 mov x,#0 46 ;y=(x*x)>>8; 47 ; sin(y); 0032 48 cikl: 0032 E8 49 mov a,x 0033 88F0 50 mov b,x 0035 A4 51 mul ab 0036 A9F0 52 mov y,b 0038 1105 53 call sin 003A 8AB0 54 mov P3,si 003C 08 55 inc x 003D B87FF2 56 cjne x,#0x7f,cikl 0040 80EE 57 jmp main 0042 00 58 nop A51 MACRO ASSEMBLER SINA 08/13/2015 20:38:11 PAGE 2 59 end A51 MACRO ASSEMBLER SINA 08/13/2015 20:38:11 PAGE 3 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 0032H A MAIN . . . . . . . C ADDR 0030H A P3 . . . . . . . . D ADDR 00B0H A SI . . . . . . . . REG R2 SIN. . . . . . . . C ADDR 0005H A X. . . . . . . . . REG R0 XX . . . . . . . . REG R3 Y. . . . . . . . . REG R1 REGISTER BANK(S) USED: 0 ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)