资源描述:
《汇编语言及应用程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章汇编语言及应用程序设计9.1伪指令9.2汇编语言源程序的汇编过程9.3MCS-51汇编语言使用程序举例9.1伪指令伪指令是对汇编过程起控制作用,但本身并没有对应的机器代码的指令。一、汇编起始指令ORG指令格式为:ORGnn该指令的作用是指明后面的程序或数据块的起始地址,它总是出现在每段源程序或数据块的开始。式中,nn为16位地址,汇编时nn确定了此语句后面第一条指令或第一个数据的地址,此后的源程序或数据块就依次连续存放在以后的地址内,直到遇到另一个ORG指令为止。例:ORG2000HMOVSP,#60HMOVR0,#2FHMOVR2,#0F
2、FHORG伪指令说明其后面程序的目标代码在存储器中存放的起始地址是2000H,即存储器地址目标程序2000H7581602003H782F2005H7AFF注意:一般要求ORG定义空间地址由小到大,且地址不能重叠。二、定义字节指令DB指令格式:<标号:>DB<项或项表>其中:项或项表是指一个字节,数或字符串,或以引括起来的ASCII码字符串(一个字符用ASCII码表示,就相当于一个字节)。功能:把项或项表的数值(字符则用它的ASCII码)存入从标号开始的连续单元中。例:ORG1000HSEG1:DB53H,74H,78H,‘1’,‘2’SEG
3、2:DB23H,‘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三、定义字指令DW指令格式:<标号:>DW<项或项表>其中:DW的基本含义与DB相同,但DB一般用于定8位数据(一个字节),而DW则定义16位数据,即一个字(规定为两个字节,即一个字为16位二进制数)。注意:在执行汇编程序时,机器会自动按高位字节在前,低位字节
4、在后的格式排列(与程序中的地址规定一致),DW伪指令常用来建立地址表。四、预留存储区DS指令格式:<标号:>DS<表达式>功能:由标号指定单元开始,定义一个存储区,以备源程序使用,存储区预留的存储单元数由表达式的值决定。例如:ORG3C40HTEMP:DS10即由3C40H地址开始保留连续的10个存储单元的存储区。五、标号指令EQU指令格式:<标号:>EQUnn或表达式功能:将语句操作数的值赋予本语句的标号,故又称为等值指令。注意:由EQU等值的字符名称必须先赋值后使用,且在同一程序中,用EQU伪指令对标号赋值后,该标号的值在整个程序中不能改变。例
5、:PA8155EQU8001H即给标号PA8155赋值为8001H。使用等值指令可给程序的编制、调试、修改带来方便,如果在程序中要多次使用到某一地址,由EQU指令将其赋值给一个字符名称,一旦需要对其进行变动,只要改变EQU命令后面的数字即可,而不需要对程序中涉及到该地址的所有指令逐句进行修改。六、源程序结束END指令格式:<标号:>END<表达式>功能:是一个结束语句,告诉汇编程序段已结束注意:该语句必须放在整个程序(包括伪指令)之后,若END语句出现在代码块中间,则汇编语言将不汇编END后面的语句。9.2汇编语言源程序的汇编过程自动编排目标程序中的
6、指令存放地址把源程序翻译成机器码分析源程序语法,若出错,给出错误信息输出目标程序及源程序文件列表9.3MCS-51汇编语言使用程序举例9.3.1简单程序设计9.3.2分支程序设计9.3.3运算程序设计9.3.4循环程序设计9.3.5代码转换程序设计9.3.6逻辑操作程序设计9.3.7查表程序设计9.3.1简单程序设计例1两个无符号双字节数相加。设被加数存放于内部RAM的40H(高位字节),41H(低位字节),加数存放于50H(高位字节),51H(低位字节),和数存入40H和41H单元中。程序如下:START:CLRC;将Cy清零MOVR0,#41H;将
7、被加数地址送数据指针R0MOVR1,#51H;将加数地址送数据指针R1AD1:MOVA,@R0;被加数低字节的内容送入AADDA,@R1;两个低字节相加MOV@R0,A;低字节的和存入被加数低字DECR0;指向被加数高位字节DECR1;指向加数高位字节MOVA,@R0;被加数高位字节送入AADDCA,@R1;两个高位字节带Cy相加MOV@R0,A;高位字节的和送被加数高位字RET例2将两个半字节数合并成一个一字节数。设内部RAM40H#,41H单元中分别存放着8位二进制数,要求取出两个单元中的低半字节,并成一个字节后,存入50H单元中。程
8、序如下:START:MOVR1,#40H;设置R1为数据指针MO