第四章 程序设计举例
DESCRIPTION
第四章 程序设计举例. 4.1 汇编语言源程序的编辑与汇编 4.2 程序设计. 4.1 汇编语言源程序的编辑与汇编 4.1.1 源程序编辑 微机上完成(各种工具软件) 例如: MASM 、 Keil C51 4.1.2 源程序的汇编 手工汇编 机器汇编. 4.1.3 伪指令 1. 汇编起始命令 格式: [ 标号: ] ORG 16 位地址 功能: 规定该指令后程序的汇编地址。 2. 汇编结束命令 格式: [ 标号: ] END 功能: 表示源程序结束。. 3. 赋值命令 - PowerPoint PPT PresentationTRANSCRIPT
-
4.1 4.2
-
4.1
4.1.1 MASMKeil C51 4.1.2
-
4.1.3
1. [] ORG 16 2. [] END
-
3. EQU EQU
4. DATA
-
EQU1EQUDATA2EQUDATA3DATA
-
5. [] DB 8 8
6. [] DW 16 16
-
7. [] DS DBDWDS
8. BIT BIT
-
4.2 4.2.1
1 2 3 4
-
89C514
[] [] []
$
-
4.2.2 . MCS-51 MOVC A, @A+DPTR MOVC A, @A+PC
-
4.1C = a2 + b2 abcRAMDADBDC A A
-
SQR1: INC A MOVC A,@A+PC RET TAB: DB 0, 1, 4, 916 DB 2536496481
-
START1: MOV A,DAH ACALL SQR1 MOV R1,A a2 (R1) MOV A,DBH ACALL SQR1 b2 (A) ADD A,R1 a2+b2 (A) MOV DCH,A SJMP $
-
SQR2:PUSH DPH PUSH DPL MOV DPTR,#TAB MOVC A,@A+DPTR POP DPL POP DPH RET TAB: DB 0, 1, 4, 91625 DB 36496481
-
4.21ASCII ADELMXZXAXDXEXLXMXXXZ
-
1.TAB5:DB A DW XA DB D DW XD DB E DW XE DB L DW XLDB MDW XMDB XDW XXDB ZDW XZDB 0
-
2)A LTB5: MOV DPTR#TAB5 MOV BA LOP5: CLR A MOVC A@A+DPTR JZ LEND INC DPTR CJNE A,B,LNF5 CLR A DPTR
-
MOVC A,@A+DPTR MOV B,A ; B INC DPTR CLR A MOVC A,@A+DPTR ; A MOV DPL,A MOV DPH,B CLR A JMP @A+DPTR ;
-
LNF5:INC DPTR INC DPTR SJMP LOP5LEND: . . .
-
MCS-51 JMP @A+DPTR
4.3128
-
1R300H7FHJMP1: MOV A, R3 RL A 2 A MOV DPTR, #JMPTAB JMP @A+DPTR +2JMPTAB: AJMP ROUT00 AJMP ROUT01 . . AJMP ROUT7F
-
2 1128 < N < 256 2R3 JMP2: MOV DPTR,#TBL9 MOV A,R3 ADD A,R3 (R32 A JNC NADD INC DPH (R32256
-
NADD: MOV R2,A MOVC A,@A+DPTR XCH A,R2 8 (R2) INC A MOVC A,@A+DPTR 8 A MOV DPL,A MOV DPH,R2 CLR A JMP @A+DPTR
-
TBL9: DW PRG0 DW PRG1 . . DW PRGn
-
3RET 1> n255 2> (R3R2) JMP3: MOV DPTR,#TBL10 MOV A,R2 2 CLR C RLC A XCH A,R3 RLC A ADD A,DPH 2 +DPH MOV DPH,A DPH
-
MOV A,R3 2 AMOVC A,@A+DPTR R3XCH A,R3INC DPTRMOVC A,@A+DPTR APUSH AMOV A,R3PUSH ARET PC
-
TBL10: DW PRG0 DW PRG1 . . DW PRGn
-
4.4: 8BCDHUNDTENONE HUND DATA 20H TENONE DATA 21H BINBCD: MOV B,#100 DIV AB A/100, MOV HUNDA MOV AB MOV B#10
-
DIV AB /10 SWAP A A ADD AB MOV TENONEA RET
-
4.5 ASCII
ASCII ASCII 1. ASCII=4=10+37H
- BINASCMOV A R2 ANL A#0FH 4 PUSH A CLR C SUBB A#0AH POP A JC LOOP
-
4.6BCD1>16, (N)D= a15215 + a14 214 +.+ a0 20 =((((a15 2)+a14) 2+a13) 2+) 2+a0 2>
-
3BTOD2MOV R1 DADR BCD R1 MOV R2 BYTE INC R2 R2 CLR ABBO MOV @R1A BCD INC R1 DJNZ R2BBO MOV ABYTE R3) MOV B#08H MUL AB MOV R3A
-
BB3MOV R0BADR R0 MOV R2BYTE CLR CBB1MOV A@R0 RLC A CY MOV @R0A INC R0 DJNZ R2BB1 MOV R2BYTE INC R2 MOV R1DADR
-
BB2MOV A@R1 BCD2 ADDC A@R1 DA A MOV @R1A INC R1 DJNZ R2BB2 DJNZ R3BB3 RET
-
4.7:
R0= R1= R2= R0=
-
ADDBIN CLR C LOOP1: MOV A,@R0 ADDC A,@R1 MOV @R0,A INC R0 INC R1
-
DJNZ R2,LOOP1 JNC LOOP2 MOV @R0,#01H RET LOOP@: DEC R0 RET
-
4.8
R0= R1= R2= R0= R3= 07H =
-
SUBBIN PUSH PSW CLR C CLR 07H MOV R3#00H LOOP3 MOV A@R0 SUBB A@R1 MOV R0A INC R0 INC R1 INC R3
-
DJNZ R2LOOP3 JNB CYLOOP4 SETB 07H 1LOOP4POP PSW CY RET
-
4.9: a,b => R7R6 c,d => R5R4 4 => RAM @R0,@(R0+1), @(R0+2),@(R0+3)1 2
-
4-2
-
3 MUL: MOV A,R6 b (A) MOV B,R4 d (B) MUL AB bd MOV @R0,A bdL @R0 MOV R3,B bdH (R3) MOV A,R4 ad (B,A) MOV B,R7 MUL AB ADD A,R3 MOV R3,A bdH + adL (R3) MOV A,B
-
ADDC A,#00H adH + Cy (R2)MOV R2,AMOV A,R6 cb (B,A)MOV B,R5MUL ABADD A,R3 bdH + adL + bcL @(R0+1)INC R0MOV @R0,AMOV R1,#00HMOV A,R2 adH + bcH + Cy (R2)ADDC A,BMOV R2,A
-
JNC LAST INC R1 R1LAST:MOV A,R7 ac (B,A) MOV B,R5 MUL AB ADD A,R2 adH + bcH + acL @(R0+2) INC R0 MOV @R0,A MOV A,B acH + Cy @(R0+3) ADDC A,R1 INC R0 MOV @R0,A RET
-
4.10 4 => R2R3R4R5 2 => R6R7 2 => R4R5 2 => R2R31 2
-
(R2R3)>?(R6R7)N16B0CYR2R3R4R5CYCF0(R2R3)(R6R7)AR1F0=?1NC=?1(AR1)(R2R3 ) (R5+1)R5(1)(B)-1=?0Y0F0NY 1F0Y Y N4-3
- 3 NDIV1:MOV A,R3 CLR C SUBB A,R7 MOV A,R2 SUBB A,R6 JNC NDVE1 ;R2R3)>(R6R7), MOV B,#16 ( R2R3)
-
MOV R5,AMOV A,R4RLC AMOV R4,AMOV A,R3RLC AMOV R3,AXCH A,R2RLC AXCH A,R2MOV F0,CCLR C
-
SUBB A,R7 MOV R1,A MOV A,R2 SUBB A,R6 JB F0,NDVM1 F0=1 JC NDVD1 F0=0CY=1 NDVM1:MOV R2,A MOV A,R1 MOV R3,A INC R5 1.
-
NDVD1:DJNZ B,NDVL1 0 CLR F0 SJMP $NDVE1:SETB F0 SJMP $
-
1. 2. a b c d