预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共48页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

伪指令一汇编程序的伪指令1、起点指令ORG2、结束命令END例:4、定义字命令DW5、定义空间命令DS6、等值命令EQU例:7、数据地址赋值等值命令DATAEQU与DATA的区别8、位地址符号命令BIT9、#HIGH(常数或数据表达式) #LOW(常数或数据表达式)二汇编语言程序设计一、汇编语言程序设计的一般步骤 分析课题 确定算法 画流程图 编写程序 上机调试 二、程序结构一、汇编语言程序设计的一般步骤 分析课题 确定算法 画流程图 编写程序 上机调试 二、程序结构一、汇编语言程序设计的一般步骤 分析课题 确定算法 画流程图 编写程序 上机调试 二、程序结构一、汇编语言程序设计的一般步骤 分析课题 确定算法 画流程图 编写程序 上机调试 二、程序结构一、汇编语言程序设计的一般步骤 分析课题 确定算法 画流程图 编写程序 上机调试 二、程序结构 一、汇编语言程序设计的一般步骤 分析课题 确定算法 画流程图 编写程序 上机调试 二、程序结构 按程序的走向可以将程序分成4种结构: 简单程序分支程序循环程序子程序简单程序拆字程序拼字程序MOVA,30H ADDA,32H MOV40H,A MOVA,31H ADDCA,33H MOV41H,A MOVA,#00H ADDCA,#0 MOV42H,A SJMP$分支程序例:设变量X存放于30H单元,函数值Y存放在31H单元。试按照下式的要求给Y赋值。 解:Y= 例:两个无符号数分别存于ONE和TWO单元,试比较它们的大小,将较大者存人MAX单元。若两数相等则任存入一个即可。 解: 循环程序循环程序循环程序循环程序例:使00H---7FH单元清0。例:内存中以21H开始的区域有若干个字符和数字,一般称为一个字符串,最末一个字符为"$",试统计这些字符数字的数目,结果存人20H单元【例4-6】设例4-4中,8位无符号数的个数n未知,数据存放的单元首址为30H,数据结束标志为十六进制数0FFH(有效数据中不含0FFH),求这n个8位无符号数之和,并将和存放在2DH和2EH单元,高字节在前。 算法:此例属于单循环且循环次数未知的情况。初始化部分清零累加和单元;循环控制方式应为先判断后执行,即应先判断某单元数据是否为结束标志,不是则将该数据加入累加和,否则结束循环;循环体内用ADDC指令实现累加和与各无符号单字节数的加法运算。循环控制可CJNE指令实现。查表程序设计子程序子程序ORG2000H BCD2B:MOVA,R2;取入口数据 ANLA,#0F0H;取出十位 SWAPA;高4位低4位 MOVB,#0AH MULAB;十位乘10 MOVR3,A;积暂存进R3 MOVA,R2;再取入口数据 ANLA,#0FH;取出个位 ADDA,R3 MOVR2,A;结果R2 RET;若不是子程序可用END编程要点: 两字节BCD码数范围为:0000H—9999H 相应2进制/16进制数为:0000H—270FH 调用BCD2B子程序实现“千位,百位”转为二进制, 并乘100; 再调BCD2B子程序实现“十位,个位”转为二进制; 最后,对位相加。X100任务一:控制一盏灯点亮任务二:红灯周期性亮/灭任务三:红外防盗报警ORG1000H DELAY:MOVR6,#200;1Tm LOOP1:MOVR7,#248;1Tm NOP;1Tm LOOP2:DJNZR7,LOOP2;2Tm DJNZR6,LOOP1;2Tm RET;1TmORG1000H DL1S:MOVR7,#10 DL1:MOVR6,#200 DL2:MOVR5,#250DL3:DJNZR5,DL3 DJNZR6,DL2 DJNZR7,DL1 RETORG2000H H2ASC:MOVA,R2;取待转换的数据(入口) ADDA,#0F6H;判此数是否≥10? 若≥10,则C=1;<10,则C=0 MOVA,R2;重取待转换的数据 JNCAD30H;小于10就跳去加30H ADDA,#07H;≥10就先加7再去加30H AD30H:ADDA,#30H MOVR2,A;存结果(出口) RETTABL:DW050FH,0E89H,0A695H,1EAAH,0D9BH,7F93H DW0373H,26D7H,2710H,9E3FH,1A66H,22E3H DW1174H,16EFH,33E4H,6CA0HORG2000H STA1:MOVA,R2;取待查数据的序号X(入口) RLA;每数占2个单元,序号要乘2 MOVR4,A;R4←序号x2(即偏移量) MOVDPTR,#TABL;DPTR←表格首地址 MOVCA,@A+DPTR;(A)←查到数据高8位 XCHA,R4;