汇编语言及应用程序设计精选PPT.ppt
《汇编语言及应用程序设计精选PPT.ppt》由会员分享,可在线阅读,更多相关《汇编语言及应用程序设计精选PPT.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言及应用程序设计汇编语言及应用程序设计第1页,此课件共62页哦 9.1 伪伪 指指 令令 伪指令是对汇编过程 起控制作用,但本身并没有对应的机器代码的指令。一、一、汇编起始指令汇编起始指令 ORG 指令格式为:ORG nn 该指令的作用是指明后面的程序或数据块的起始地址,它 总是出现在每段源程序或数据块的开始。式中,nn为 16 位地 址,汇编时nn确定了此语句后面第一条指令或第一个数据的地 址,此后的源程序或数据块就依次连续存放在以后的地址内,直 到遇到另一个ORG指令为止。第2页,此课件共62页哦例:ORG 2000H MOV SP,60H MOV R0,2FH MOV R2,0FF
2、H ORG伪指令说明其后面程序的目标代码在存储器 中存放的起始地址是2000H,即 存储器地址 目标程序 2000H 75 81 60 2003H 78 2F 2005H 7A FF注意:一般要求ORG定义空间地址由小到大,且 地址不能重叠。第3页,此课件共62页哦 二、二、定义字节指令定义字节指令DB 指令格式:标号:DB 项或项表 其中:项或项表是指一个字节,数或字符串,或以引 括起来的ASCII码字符串(一个字符用ASCII 码表示,就相当于一个字节)。功能:把项或项表的数值(字符则用它的ASCII码)存入从标号开始的连续单元中。第4页,此课件共62页哦例:ORG 1000H SEG1:
3、DB 53H,74H,78H,1,2 SEG2:DB 23H,DAY END则:(1000H)=53H (1001H)=74H (1002H)=78H (1003H)=31H 数字1的ASCII码 (1004H)=32H 数字2的ASCII码 (1005H)=23H (1006H)=34H (1007H)=41H DAY的ASCII码 (1008H)=59H 第5页,此课件共62页哦 三、三、定义字指令定义字指令DW 指令格式:标号:DW 项或项表 其中:DW的基本含义与DB相同,但DB一般用于定 8位数据(一个字节),而DW则定义16位数 据,即一个字(规定为两个字节,即一个字为 16位二进
4、制数)。注意:在执行汇编程序时,机器会自动按高位字节在 前,低位字节在后的格式排列(与程序中的地 址规定一致),DW伪指令常用来建立地址表。第6页,此课件共62页哦 四、四、预留存储区预留存储区DS 指令格式:标号:DS 表达式 功能:由标号指定单元开始,定义一个存储区,以备 源程序使用,存储区预留的存储单元数由表达 式的值决定。例如:ORG 3C40H TEMP:DS 10 即由3C40H地址开始保留连续的10个存储单元的存储区。第7页,此课件共62页哦 五、五、标号指令标号指令EQU 指令格式:标号:EQU nn或表达式 功能:将语句操作数的值赋予本语句的标号,故又称为等值指令。注意:由
5、EQU等值的字符名称必须先赋值后使 用,且在同一程序中,用EQU伪指令对 标号赋值后,该标号的值在整个程序中 不能改变。第8页,此课件共62页哦例:PA8155 EQU 8001H 即给标号PA8155赋值为8001H。使用等值指令可给程序的编制、调试、修改 带来方便,如果在程序中要多次使用到某一地址,由 EQU指令将其赋值给一个字符名称,一旦需要对其 进行变动,只要改变EQU命令后面的数字即可,而 不需要对程序中涉及到该地址的所有指令逐句进 行修改。第9页,此课件共62页哦 六、六、源程序结束源程序结束END 指令格式:标号:END 表达式 功能:是一个结束语句,告诉汇编程序段已结束 注意:
6、该语句必须放在整个程序(包括伪指令)之后,若END语句出现在代码块中间,则 汇编语言将不汇编END后面的语句。第10页,此课件共62页哦9.2 汇编语言源程序的汇编过程汇编语言源程序的汇编过程自动编排目标程序中的指令存放地址把源程序翻译成机器码分析源程序语法,若出错,给出错误信息输出目标程序及源程序文件列表第11页,此课件共62页哦 9.3 MCS-51汇编语言使用程序举例汇编语言使用程序举例9.3.1 简单程序设计 9.3.2 分支程序设计9.3.3 运算程序设计9.3.4 循环程序设计9.3.5 代码转换程序设计9.3.6 逻辑操作程序设计9.3.7 查表程序设计 第12页,此课件共62页
7、哦9.3.1 简单程序设计简单程序设计 例 1 两个无符号双字节数相加。设被加数存放于内部RAM的40H(高位 字节),41H(低位字节),加数存放于50H(高位字节),51H(低位字节),和数存入 40H和41H单元中。第13页,此课件共62页哦程序如下:START:CLR C ;将Cy清零 MOV R0,41H ;将被加数地址送数据指针R0 MOV R1,51H ;将加数地址送数据指针R1AD1:MOV A,R0 ;被加数低字节的内容送入A ADD A,R1 ;两个低字节相加 MOV R0,A ;低字节的和存入被加数低字 DEC R0 ;指向被加数高位字节 DEC R1 ;指向加数高位字节
8、 MOV A,R0 ;被加数高位字节送入A ADDC A,R1 ;两个高位字节带Cy相加 MOV R0,A ;高位字节的和送被加数高位字 RET 第14页,此课件共62页哦 例 2 将两个半字节数合并成一个一字节数。设内部RAM 40H#,41H单元中分别存放着 8 位二进制数,要求取出两个单元中的低半字节,并成一个字节后,存入50H单元中。第15页,此课件共62页哦程序如下:START:MOV R1,40H ;设置R1为数据指针MOV A,R1 ;取出第一个单元中的内容ANL A,0FH ;取第一个数的低半字节SWAP A ;移至高半字节INC R1 ;修改数据指针XCH A,R1 ;取第二
9、个单元中的内容ANL A,0FH ;取第二个数的低半字节ORL A,R1 ;拼字MOV 50H,A ;存放结果RET 第16页,此课件共62页哦9.3.2 分支程序设计分支程序设计图 9.1 分支结构框图(a)单分支流程;(b)多分支流程 第17页,此课件共62页哦例 3 x,y均为8位二进制数,设 x存入R0,y存入R1,求解:y=syn(x)图 9.2 第18页,此课件共62页哦程序如下:START:CJNE R0,00H,SUL1;R0中的数与00比较不等转移 MOV R1,00H;相等,R1 0 SJMP SUL2 SUL1:JC NEG ;两数不等,若(R0)0,则 R101H SJ
10、MP SUL2 NEG:MOV R1,0FFH;(R0)0,则 R10FFH SUL2:RET 第19页,此课件共62页哦 例 4 比较两个无符号数的大小。设外部 RAM 的存储单元 ST1和 ST2中存放两个不带符号的二进制数,找出其中的大数存入外部 RAM 中的 ST3单元中。图 9.3 第20页,此课件共62页哦程序如下:ORG 1000H ST1 EQU 2000H ST2 EQU 2100H ST3 EQU 2200H START:CLR C ;清零Cy MOV DPTR,ST1 ;第一个数的指针 MOVX A,DPTR ;取第一个数 MOV R2,A ;保存 MOV DPTR,ST
11、2 ;第二个数的指针 MOVX A,DPTR ;取第二个数 CLR C 第21页,此课件共62页哦SUBB A,R2;两数比较JNC BIG2;若第二个数大,则转XCH A,R2;第一个数大BIG1:MOV DPTR,ST3 MOVX DPTR,A;存大数RETBIG2:MOVX A,DPTR;第二个数大SJMP BIG1RET 第22页,此课件共62页哦9.3.3 运算程序设计运算程序设计一、一、加、加、减法程序减法程序 例5 将40H开始存放的10个字节的数与50H开始存放的10 个字节的数相减(假设被减数大于减数)。设被减数指针为 R0,减数指针为 R1,差数放回被减数单元,R5 存放字
12、节个数,则程序如下:第23页,此课件共62页哦 SUB:MOV R0,40HMOV R1,50HMOV R5,10CLR CSUB1:MOV A,R0SUBB A,R1MOV R0,AINC R0INC R1DJNZ R5,SUB1RET 第24页,此课件共62页哦 二、二、乘法运算程序乘法运算程序 在计算机中,常将乘法采用移位和加法来实现。例6 将(R2R3)和(R6R7)中双字节无符号数相乘,结果存入 R4R5R6R7。此乘法可以采用部分积右移的方法来实现,其程序框图如图 4.6 所示,程序如下:NMUL:MOV R4,0 ;初始化 MOV R5,0 CLR C MOV R0,16第25页
13、,此课件共62页哦NMUL1:MOV A,R4 ;CyR4R5R6R7右移一位 RRC A MOV R4,A MOV A,R5 RRC A MOV R5,A MOV A,R6 RRC A MOV R6,A MOV A,R7 RRC MOV R7,A JNC NMUL2;C为移出乘数的最低位 MOV A,R5;(R4R5)+(R6F7)(R4R5)第26页,此课件共62页哦 ADD A,R3 MOV R5,A MOV A,R4 ADDC A,R2 MOV R4,A NMUL2:DJNZR0,NMUL1;循环16位 MOV A,R4;最后结果再移一位 RRC A MOV R4,A MOV A,R5
14、 RRC A MOV R5,A MOV A,R6第27页,此课件共62页哦 RRC A MOV R6,A MOV A,R7 RRC A MOV R7,A RET 第28页,此课件共62页哦图9.4 NMUL程序框图第29页,此课件共62页哦 三、三、除法运算程序除法运算程序 除法是乘法的逆运算,用移位、相减的方法来完成。首先比较被除数的高位字与除数,如被除数高位大于除数,则商为1,并从被除数中减去除数,形成一个部分余数;否则商位为 0,不执行减法。然后把新的部分余数左移一位,并与除数再次进行比较。循环此步骤,直到被除数的所有位都处理完为止,一般商的字长为 n,则需循环n次。一般计算机中,被除数
15、均为双倍位,即如果除数和商为双字节,则被除数为四字节。如果在除法中发生商大于规定字节,称为溢出。在进行除法前,应该检查是否会产生溢出。一般可在进行除法前,先比较被除数的高位与除数,如被除数高位大于除数,则溢出,置溢出标志,不执行除法。第30页,此课件共62页哦图图 9.5除法除法程序程序的流的流程程 第31页,此课件共62页哦 例 7 将(R4R5R6R7)除以(R2R3),商放在(R6R7)中,余数放在(R4R5)中。NDIV:MOV A,R5 ;判商是否产生溢出 CLR C SUBB A,R3 MOV A,R4 SUBB A,R2 JNC NDIV1 ;溢出,转溢出处理 MOV B,16;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 应用 程序设计 精选 PPT
限制150内