하드웨어 설계에 관련한 공개 강좌를 게재하는 공간입니다.
운영진에 의해 강좌글은 편집되며, 공익을 위한 게시글은 '하드웨어 강좌'란으로 이동될 수 있습니다.
판매자 | 아크마 | 판매 납포인트 | 무료 | 평점 | 0점 / 총 0명 참여 |
---|
C언어와 어셈블리어 비교
C언어 |
||
#include<reg51.h>
void main(void) { int i;
while(1){ P1 = 0xf0; for(i=0; i<30000; i++);
P1 = 0x0f; for(i=0; i<30000; i++); } } |
|
L4002: 7590F0 MOV 90, #F0 L4005: E4 CLR A L4006: FF MOV R7, A L4007: FE MOV R6, A L4008: 0F INC R7 L4009: BF0001 CJNE R7, #00, 400D L400C: 0E INC R6 L400D: BE75F8 CJNE R6, #75, 4008 L4010: BF30F5 CJNE R7, #30, 4008 L4013: 75900F MOV 90, #0F L4016: E4 CLR A L4017: FE MOV R6, A L4018: FF MOV R7, A L4019: C3 CLR C L401A: EF MOV A, R7 L401B: 9430 SUBB A, #30 L401D: EE MOV A, R6 L401E: 6480 XRL A, #80 L4020: 94F5 SUBB A, #F5 L4022: 50DE JNC 4002 L4024: 0F INC R7 L4025: BF0001 CJNE R7, #00, 4029 L4028: 0E INC R6 L4029: 80EE SJMP 4019 L4000: 012B AJMP 402B L402B: 783F MOV R0, #3F L402D: E4 CLR A L402E: F6 MOV @R0, A L402F: D8FD DJNZ R0, 402E L4031: 758107 MOV 81, #07 L4034: 0102 AJMP 4002 |
어셈블리어 |
||
ORG 8000H MAIN: MOV P1, #0F0H CALL DELAY MOV P1, #0FH CALL DELAY JMP MAIN
DELAY: MOV R0, #23 LOOP1: MOV R1, #100 LOOP2: MOV R2, #100 DJNZ R2, $ DJNZ R1, LOOP2 DJNZ R0, LOOP1 RET
END |
|
L8000: 7590F0 MOV 90, #F0 L8003: 12800E LCALL 800E L8006: 75900F MOV 90, #0F L8009: 12800E LCALL 800E L800C: 80F2 SJMP 8000 L800E: 7817 MOV R0, #17 L8010: 7964 MOV R1, #64 L8012: 7A64 MOV R2, #64 L8014: DAFE DJNZ R2, 8014 L8016: D9FA DJNZ R1, 8012 L8018: D8F6 DJNZ R0, 8010 L801A: 22 RET |