第四章 汇编语言程序设计
description
Transcript of 第四章 汇编语言程序设计
-
1.2.keil3.4.1.2.3.keil4.
-
41 4.1.1 C51C C51 1 2 3 4C51
-
4.1.2 ORG
-
ORG ORGEND END ENDDB DB
-
ORG 2000H TAB: DB 14H,26,A DB 0AFH,BC (2000H)=14H, (2001H)=1AH, (2002H)=41H (2003H)=AFH, (2004H)=42H, (2005H)=43HBIT BIT QQ BIT (20H).0 QQ00H PP BIT (29H).6 ; PP4EHEQU EQU
-
BeiJiaShu EQU 32H ;BeiJiaShu=32H JiaShu EQU 48H ;JiaShu=48H Address EQU 2000H MOV A, BeiJiaShu MOV 40H,JiaShu ADD A,40H ;32H+48H
EQUDATA DATA QQ DATA 1000H QQ=1000HDATAEQUDATA
-
4.2 4.2.1
-
4.2.2
-
2BCDRAM50H,51H60H, 61H40H,41H 1000
-
31616R7,R6 R7,R62020H ORG 2020HMOV A,R6CPL AADD A,#01HMOV R6,AMOV A, R7CPL AADDC A,#01HMOV R7,A END
-
4.2.3
-
1a30Hb31H
-
2xRAM30HYRAM40 ORG 0000H MOV A,30H CJNE A,#00H,NOT_ZORO MOV 40H,#00H SJMP $ZORO: JC ACC.7, FUSHU MOV 40H,#01H SJMP $FUSHU: MOV 40H,#0FFH SJMP $ END
-
3R0 R0=0,TURN_0 R0=1,TURN_1 R0=2,TURN_2 R0=3,TURN_3 R0=4,TURN_4 R0=5,TURN_5
-
ORG 0000H MOV DPTR,#FENZHICHENGXU MOV A, R0 JMP @A+DPTR SJMP $ ORG 2000HFENZHICHENGXU: AJMP TURN_0 AJMP TURN_1 AJMP TURN_2 AJMP TURN_3 AJMP TURN_4 AJMP TURN_5 SJMP $ END
-
4.2.4 DJNZ MOV Rn , #XXH()DJNZ Rn , LOOP
- 1100 RAM30H100
-
210 RAM40H 1010H ORG 1000H MAIN:MOV R2,#09H ; MOV R1,#40H 40HR1 1 MOV A,@R1 LOOP:INC R1 MOV 30H,@R1 CJNE A,30H,NOT_EQ 10H AGAIN: DJNZ R2,LOOP JMP MAX 10H NOT_EQ:JC MAX1 MAX1 JMP AGAIN MAX1:MOV A,30H A JMP AGAIN MAX:MOV 10H,A 10H SJMP END
-
310 RAM40H 10 ORG 0000H MOV R2,#09H START:MOV R0,#40H MOV A,@R0 LOOP:INC R0 MOV 30H,@R0 CJNE A,30H,NEXT AGAIN:DJNZ R2,LOOP MOV R2,#09H DJNZ R2,START SJMP $ NEXT:JNC Q_BIGQ_SMALL:MOV A,30H JMP AGAIN Q_BIG:MOV @r0,a DEC R0 MOV @R0,30h INC R0 JMP AGAIN END
-
4.2.5
-
1 P10 10uS,P11 10uS ORG 0000H START:MOV A,#00 MOV P1,A LCALL DELAY MOV P1,#OFFH JMP START DELAY:MOV R7,#20 MOV R6,#250 DJNZ R6,$ DJNZ R7,DELAY RET END
-
4.2.6 :
1 2 3 4 5
-
----12000H100 ORG 0000HBlock equ 2000h mov dptr, #Block ; mov r0, #64H ; 100 clr aLoop: movx @dptr, a inc dptr ; djnz r0, Loop ; sjmp $ end
-
240H60H2100H
ORG 1000H
START:MOV R2,#21H MOV R0,#40H MOV DPTR,#2100H LOOP: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R0,LOOP SJMP $
END
-
350H57H(00010203 04050607)5AH ORG 0000H
START:MOV R2,#07H MOV R0,#50H MOV A,@R0LOOP: INC R0 ADDC A,@R0 DJNZ R0,LOOP MOV B,#08 DIV AB SJMP $
END
-
47BH(123)BCD, Result Result equ 20h org 0000h jmp StartBinToBCD: mov b, #100 div ab mov Result, a ; 100, mov a, b mov b, #10 div ab mov Result+1, a ; 10, mov Result+2, b ; retStart: mov sp, #40h mov a, #123 call BinToBCD ljmp $ end
-
5MICROCONTROLRAM2400H ORG 0000HSTART: MOV R2,#12 MOV R0,#00H MOV R4,#24H MOV R3,#00HLOOP: MOV A,R0 MOV DPTR,#TAB MOVC A, @A+DPTR MOV DPL,R3 MOV DPH,R4 MOVX @DPTR,A INC R0 INC R3 DJNZ R2,LOOP SJMP $TAB: DB 'MICROCONTROL' END
-
6RAM 30H~35H ORG 0000HMAIN: MOV R2,#05HSTART:MOV R0,#35H MOV A,@R0LOOP: DEC R0 MOV 40H,@R0 CJNE A,40H,NEXTAGAIN: DJNZ R2,LOOP MOV R2,#05H DJNZ R2,START SJMP $NEXT: JNC Q_BIGQ_SMALL:MOV A,40H JMP AGAINQ_BIG: MOV @R0,A INC R0 MOV @R0,40H DEC R0 JMP AGAIN END
-
730H31H30H 31H40H30H34H31H56H40H 45H ORG 0000HSTART:MOV R0,#30H MOV A,@R0 ANL A,#0FH SWAP A MOV 40H,A INC R0 MOV A,@R0 SWAP A ANL A,#0FH ORL 40H,A SJMP $ END