1 / 18

汇编语言是一种面向机器的程序设计语言,因机器的不同而不同。 一、计算机程序设计语言 1 .机器语言 (Machine Language)

第三章 汇编语言程序设计. 3.1 引言. 汇编语言是一种面向机器的程序设计语言,因机器的不同而不同。 一、计算机程序设计语言 1 .机器语言 (Machine Language) 2 . 汇编语言( Assembly Language ) 3 .高级语言( High-Level Language ) 二、 汇编语言格式. 第三章 汇编语言程序设计. 3.1 引言. ORG 0060H START : MOV A , #00H ; A←0 MOV R2 , #0AH ; R2←10

Download Presentation

汇编语言是一种面向机器的程序设计语言,因机器的不同而不同。 一、计算机程序设计语言 1 .机器语言 (Machine Language)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 汇编语言程序设计 3.1 引言 汇编语言是一种面向机器的程序设计语言,因机器的不同而不同。 一、计算机程序设计语言 1.机器语言(Machine Language) 2 .汇编语言(Assembly Language) 3.高级语言(High-Level Language) 二、 汇编语言格式

  2. 第三章 汇编语言程序设计 3.1 引言 ORG 0060H START:MOV A,#00H ;A←0 MOV R2,#0AH ;R2←10 MOV R1,#03H ;R1←3 LOOP: ADD A,R1 ;A←A+ R1 DJNZ R2, LOOP ;若 R2-1≠0,则LOOP NOP SJMP $ END

  3. 第三章 汇编语言程序设计 3.1 引言 三、汇编语言构成 指令性语句和指示性语句两类。 指令性语句是指采用指令助记符构成的汇编语言语句,它当然必 须符合汇编语言的语法规则。 指示性语句又称伪指令语句 1.ORG (起始汇编)伪指令 2.END (结束汇编)伪指令

  4. 第三章 汇编语言程序设计 3.1 引言 3.EQU (赋值)伪指令 ORG 0500H AA EQU R1 A10 EQU 10H DELAY EQU 07E6H MOV R0,A10 ;R0←(10H) MOV A,AA ;A←R1 : : LCALL DELAY ;调用07E6H子程序 END

  5. 第三章 汇编语言程序设计 3.1 引言 4.DATA (数据地址赋值)伪指令 ORG 0200H MOV A, AA ; A←(35H) : : LCALL DELAY ;调用A7E6H子程序 : : AA DATA 35H ; 8位或16位 DELAY XDATA 0A7E6H ;16位专用 END

  6. 第三章 汇编语言程序设计 3.1 引言 5.DB (定义字节)伪指令 [ 标号:] DB 项或项表 ORG 0600H START:MOV A,# 64H : TAB: DB 45H, 73, 01011010B,’8’, ’B’ : END

  7. 开始 语句1 语句2 简单程序 分支程序 语句n 结束 第三章 汇编语言程序设计 3.2 汇编语言源程序的设计和汇编(略) 3.3 简单和分支程序设计

  8. 一、简单程序设计 ORG 0300H NUM DATA 20H MOV R0,#NUM ;R0←NUM MOV A,@R0 ;低8位送A CPL A ADD A,#01H ;A中内容变补,进位位留Cy MOV @R0,A ;存数 INC R0 MOV A,@R0 ;高8位送A CPL A ;高8位取反 ADDC A,#00H ;加进位位 ANL A, #7FH ;去掉符号位 MOV @R0 ,A ;存数 SJMP $ ;结束 END

  9. 一、简单程序设计 ORG 0500H MOV R0, #M1 ;x1的始址送R0 MOV R1, #M2 ;x2的始址送R1 MOV A, @R0 ;A←x1的低8位 ADD A, @R1 ;A←x1的低8位十x2的低8位,形成Cy MOV @R0, A ;和的低8位存M1 INC R0 ;修改地址指针R0 INC R1 ;修改地址指针R1 MOV A, @R0 ;A←x1高8位 ADDC A, @R1 ;A-x1高8位+x2高8位+Cy MOV @R0,A ;和的高8位存M111 SJMP $ ;停机 END

  10. 第三章 汇编语言程序设计 3.3 简单和分支程序设计 二、分支程序设计 例4.4 已知VAR单元内有一自变量X,请按如下条件编出求函数值Y并将它存入 FUNC单元的程序。 1 X>0 Y= 0 X=0 -1 X<0

  11. 第三章 汇编语言程序设计 3.3 简单和分支程序设计 ORG 0100H VAR DATA 30H FUNC DATA 31H MOV A,VAR ;A←X JZ DONE ;若X=0,则1转DONE JNB ACC.7 ,POSI ;若X﹥0,则,转POSI MOV A,#0FFH ;若X﹤0,则A← -1 SJMP DONE ;转DONE POSI: MOV A,#01H :A←1 DONE: MOV FUNC,A ;存Y值 SJMP $ END

  12. 第三章 汇编语言程序设计 3.4 循环和查表程序设计 一、 循环程序设计 例4.5 已知内部RAM的BLOCK单元开始有一无符号数据块,块长在LEN单元,试编出求数据块中各数累加和并存入SUM单元的程序。

  13. 第三章 汇编语言程序设计 3.4 循环和查表程序设计

  14. 第三章 汇编语言程序设计 3.4 循环和查表程序设计 ORG 0200H LEN DATA 20H SUM DATA 21H BLOCK DATA 22H CLR A MOV R2,LEN INC R2 MOV R1,#BLOCK SJMP CHECK LOOP: ADD A,@R1 INC R1 CHECK:DJNZ R2, LOOP MOV SUM,A SJMP $ END ORG 0200H LEN DATA 20H SUM DATA 21H BLOCK DATA 22H CLR A MOV R2,LEN MOV R1,#BLOCK NEXT: ADD A,@R1 INC R1 DJNZ R2, NEXT MOV SUM,A SJMP $ END

  15. 二、查表程序设计 MOVC A,@A+DPTR MOVC A,@A+PC 例4-7 已知R0低四位有一个十六进制数(0~F中一个),试编出能把它转换成相应ASCⅡ码并送入R0的程序。 ORG 0400H 0400 E8 MOV A, R0 ;取转换值到A 0401 540F ANL A, #0FH ;屏蔽高四位 0403 2403 ADD A, #03H ;地址调整 0405 83 MOVC A, @A+PC ;查表 0406 F8 MOV R0, A ;存结果 0407 80FE SJMP $ 0409 ASCTAB:DB ′0′,′1′,′2′,′3′,′4′ DB ′5′,′6′,′7′,′8′,′9′ DB ′A′,′B′,′C′,′D′,′E′,′F′ END

  16. 第三章 汇编语言程序设计 3.5 子程序设计 例 4. 9 设 MDA和 MDB内有两数 a和 b,请编出求c= a²+b²并 把 c送入 MDC的程序。设a和b皆为小于10的整数。

  17. ORG 1000H MDA DATA 20H MDB DATA 21H MDC DATA 22H MOV A,MDA ;入口参数a送A ACALL SQR ;求a2 MOV R1,A ;a2送R1 MOV A,MDB ;入口参数b送A ACALL SQR ;求b2 ADD A,R1 ;a2+b2送A MOV MDC,A ;存入MDC SJMP $ ;结束 SQR: ADD A, #01H ;地址调整 MOVC A,@A十PC ;查平方表 RET ;返回 SQRTAB:DB 0,1,4,9,16 DB 25,36,49,64,81 END

  18. ORG 1000H MDA DATA 20H ;参数a MDB DATA 21H ;参数b MDC DATA 22H ; MOV A,MDA ;参数a送A MOV B,MDA ;参数a送B ACALL SQR ;求a2 MOV R1,A ; a2送R1 MOV A,MDB ;参数a送A MOV B,MDB ;参数a送B ACALL SQR ;求b2 ADD A,R1 ; a2+b2送A MOV MDC,A ;存入MDC SJMP $ ; SQR: MUL AB ;求平方 RET ;返回 END

More Related