第4章单片机.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章单片机

机器语言——用二进制数表示指令和数据。面向机器,能被计算机直接识别和执行 ,执行速度快,占用内存少。   B0 64 是什么意思?这就是机器语言。既不直观,又不易理解和记忆。   MOV AL,64H ;很容易记忆理解,这就是助记符。 助记符——用便于记忆的英语单词表示的指令操作码。它反映了指令的功能和主要特征,便于人们理解和记忆。 4.1.1 汇编语言源程序的结构 4.1.2 伪操作  数据定义伪指令  符号定义伪指令  段定义伪指令  过程定义伪指令  源程序结束伪指令 用途:定义一个变量的类型,给存储器赋初值,或只给变量    分配存储单元而不赋值。 格式:变量名 数据定义伪指令 操作数,操作数,… 常用的数据定义伪指令有如下几种:   DB 定义字节   DW 定义字   DD 定义双字 操作数可以是常数、变量或表达式 例2: STR DB ‘HELLO’ 操作数 ? 用来保留存储空间,但不存入数据。 例4:ABC DB 0,1,2,3,4,’OK’,’$’ RSV DW ?,?,?,?,?,?,?,? 重复操作符 DUP : 重复的数据可以使用重复操作符DUP,如上面RSV亦可写成: RSV DW 8 DUP(?) 若操作数中使用$,则表示的是地址计数器的当前值。 例5: TABLE DB 10 DUP(?) BUFFER DW TABLE,$+3 设TABLE的偏移地址为0080H,则汇编后如下图所示:   把一个表达式用一个符号表示,以后凡出现该表达式的地方都可用这个符号表示。   符号定义伪指令有两种:EQU、= 例:FIVE EQU 5 COUNT EQU CX TEN EQU 10 DIST = BYTE PTR[SI+BP] GOTO = JMP … MOV AX, TEN MOV BX, COUNT ADD DIST, FIVE DIST = WORD PTR[SI+BP+1] ADD DIST, AX GOTO LABEL    汇编语言源程序是按段来组织程序和数据的。 和存储器的物理段相对应,汇编语言源程序中的段称为逻辑段,汇编连接后被映射到物理段中。    段定义伪指令有:SEGMENT、ENDS、ASSUME、ORG   过程的类型有两种:NEAR——(默认类型)表示段内调用          FAR——表示段间调用 调用一个过程的格式为: CALL 过程名 4.1.3 汇编语言行构成 汇编语言的语句有两种:  指令性语句——由8086指令助记符构成的语句  指示性语句——由伪指令构成的语句 指令性语句的格式为:   标号: 指令助记符 目的操作数,源操作数 ;注释 指示性语句的格式为:   名字 伪指令 操作数1,操作数2,…,操作数n ;注释 注:各部分之间至少要用一个空格作为分隔符。   指令性语句由CPU执行,每一条指令性语句都有一条机器码指令与其对应;   指示性语句由汇编程序执行。它指出汇编程序应如何对源程序进行汇编,如何定义变量、分配存储单元以及指示程序开始和结束等。指示性语句无机器码指令与其相对应。   指令性语句汇编时生成机器码;   指示性语句汇编时不生成机器码。 1)算术运算符—— +、-、*、/、MOD 2)逻辑运算符—— AND、OR、XOR、NOT 3)关系运算符——EQ、NE、LT、GT、LE、GE 4)取地址运算符——SEG、OFFSET 5)取值运算符——TYPE、LENGTH、SIZE 6)属性运算符——PTR 用来指定地址操作数的类型。 格式:类型 PTR 地址操作数   类型∈{BYTE, WORD, DWORD, NEAR, FAR}  BYTE、WORD、DWORD  用于描述数据存储单元(变量)地址  NEAR、FAR  用于描述转移、调用的目的地址 (1)用方框表示工作框,框中用简明语言标明要完成的功能 【例4.3】 自DATA2单元开始存放着2个无符号数据,编程将大数送MAX单元。   由于没有两个存储单元内容的比较指令,所以先将一个数送寄存器AL,AL内容和第二个数比较之后使得大数在AL寄存器。最后,将(AL)送结果单元即可。 DATA SEGMENT DATA2 DB 36H, 0A8H ;定义两个无符号数 MAX DB ?        ;预留一个字节单元 DATA E

文档评论(0)

82393aa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档