MCS-51第四章 汇编语言及程序设计.ppt
文本预览下载声明
例.已知内部RAM的ADDR1单元开始有一无符号 数据块,块长在LEN单元,请编出求数据块中各数累 加和并存数外部RAM的SUM1单元的程序。 LOOP: ADD A,@R1 INC R1 CHECK:DJNZ R2,LOOP MOVX @DPTR,A SJMP $ END ORG 2000H ADDR1 EQU 30H LEN EQU 20H SUM1 EQU 2000H MOV DPTR , #SUM1 CLR A MOV R2,LEN MOV R1,#ADDR1 INC R2 SJMP CHECK NEXT: ADD A,@R1 INC R1 DJNZ R2,NEXT MOVX @DPTR,A SJMP $ END ORG 2000H ADDR1 EQU 30H LEN EQU 20H SUM1 EQU 2000H MOV DPTR,#SUM1 CLR A MOV R2,LEN MOV R1,#ADDR1 NEXT1: JC NEXT MOV MAX,A NEXT: INC R1 DJNZ LEN,LOOP SJMP $ END 例.已知内部RAM ADDR1为起始地址的数据块内部数据是无符号数,块长在LEN单元内,请编程求出数据块中的最大值并存入MAX单元。 ORG 2000H ADDR1 DATA 50H LEN DATA 30H MAX DATA 32H MOV MAX,#00H MOV R1,#ADDR1 LOOP: MOV A,@R1 CJNE A,MAX,NEXT1 4.查表结构程序设计 所谓查表就是根据存放在ROM中的数据表格的 项数来查找和它对应的表中值。即:把事先计算或 实验数据按一定顺序编成表格,存于ROM中,然后 根据输入参数值,从表中取出结果。 例.求函数Y=X!(X=0,…,7)的值。设自变量 存放在ADDR1单元,表头的地址为TAB1,表中每个数 据占两个字节,Y值为双字节,存放在寄存器R2R3中, R3存放Y值低字节,请编出查表程序。 ORG 2000H ADDR1 EQU 20H START: MOV A , ADDR1 ADD A , ADDR1 MOV R3 , A ADD A , #07H MOVC A , @A+PC XCH A , R3 ADD A , #04H MOVC A , @A+PC MOV R2 , A SJMP $ TAB1: DB 01,00,01,00,02,00,06,00 DB 24H,00,20H,01,20H,07,40H,50H END School of Engineering Automation ·Tianjin Polytechnic University 微机原理及应用 第十四章 51汇编语言及程序设计 伪指令不是真正的指令,在汇编时不产生机器代码。伪指令的功能主要是用来对汇编过程进行某种控制。采用机器汇编的方法时,源程序必须通过汇编程序的处理,才能转换为计算机识别和执行的机器语言。为此,在源程序中应有向汇编程序发出的指示信息,告诉汇编程序如何完成汇编工作。如用伪指令给程序
显示全部