第四章 程序设计举例

55
第四章 程序设计举例 第四章 程序设计举例 4.1 4.1 汇编语言源程序的编辑与汇编 汇编语言源程序的编辑与汇编 4.2 4.2 程序设计 程序设计

Upload: vanya

Post on 03-Feb-2016

84 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

  • 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