- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七讲 微型计算机汇编语言及汇编程序;主要内容;汇编语言程序设计与执行过程;汇编语言源程序的结构;;7.1 宏汇编语言的基本语法;●指令性语句由CPU执行,每一条指令性语句都有一条机器码指令与其对应;●指示性语句由汇编程序执行。它指出汇编程序应如何对源程序进行汇编,如何定义变量、分配存储单元以及指示程序开始和结束等。指示性语句无机器码指令与其相对应。 指令性语句汇编时生成机器码; 指示性语句汇编时不生成机器码。;语句的构成元素:
标号——指令的符号地址,用来代表指令在存储器中的地址。只能出现在指令性语句中,标号后应加上冒号。
名字——段、过程、变量的名字,用来代表它们在存储器中的地址。只能出现在指示性语句中,名字后不加冒号。
指令助记符——8086助记符、伪指令
操作数——即指令的操作对象
对指令性语句——0,1,2个
对指示性语句——根据需要而定
操作数之间以逗号分隔
操作数可以是:寄存器、存储单元、常数或表达式
;注释——以分号开头,可放在指令后,也可单独一行。
?注意注解的写法。要写指令(段)在程序中的作用,而不要写指令的操作。
例如:以下为同一条指令写的注释
1)MOV CX,100 ;传送100到CX
2)MOV CX,100 ;循环计数器置初值
显然,第二种写法要比第一种写法要好。 ;;;(1) 指令语句中源操作数中作立即数,它应与目的操作数的位数相一致,可以是8位或16位,例如:
MOV AX,0A5F1H
(2) 在指令语句的基址加变址的寻址方式中作位移量,例如:
MOV BX,[SI+32H]
(3) 在数据定义伪指令中,例如:;; 变量——即内存中的存储单元或数据区。
变量名——是存储单元(数据区)的符号地
址或名字。
变量也有三个属性:
段地址—变量所在段的段地址
偏移量—变量单元地址与段首地址之间的位移量。
类 型—有BYTE、WORD和DWORD三种。
变量在程序中作为存储器操作数被引用。;标号和变量名的使用规则
组成:A-Z(不分大小写), 0-9, ?@ . _ $
不能以数字开头,句号(.)只能作为首字符
长度小于31个字符
不能与保留字(指令助记符、伪指令、预定义符号等)重名
不能重复定义
例如:
正确的:LP1, AGAIN, NEXT, _GO, OK_1
错误的:4M, LOOP, AAA, #HELP, +ONE;VAR_DATA SEGMENT
DATA1 DB 12H
DATA2 DB ?
DATA3 DW 5678H
STRING1 DB ‘ABCD’
D_B1 DB DUP(4)
VAR_DATA ENDS;;用于数字表达式,例:
MOV AX,4*1024
汇编后的形式为:
MOV AX,4096
用于地址表达式,例:
LEA SI,TAB+3
若TAB的偏移地址为1000H,则汇编后的形式为:
LEA SI,[1003H] ;;关系运算的结果是一个逻辑值:真或假
关系为真,结果为全1
关系为假,结果为全0
例:MOV BX,PORT GT 300H
若PORT的值大于300H,则汇编后为:
MOV BX,0FFFFH
否则汇编后为:
MOV BX,0;4)取地址运算符-SEG\OFFSET;TYPE 取变量的类型(1,2,4)
LENGTH 取所定义变量的长度
(即变量中元素的个数)
SIZE 取所定义存储区的字节数
(=TYPE*LENGTH)
例:VAR DW 1,2,3,4,5
则 TYPE VAR = 2
LENGTH VAR = 5
SIZE VAR = 10;;;;;7.2 伪指令;;;例2:操作数可以是字符串,例如
STR DB ‘HELLO’
汇编后的情况如图:;操作数?用来保留存储空间,但不存入数据.
例3??ABC DB 0,1,2,3,4,’OK’,’$’
RSV DW ?,?,?,?,?,?,?,?
复制操作符DUP:
重复的数据可以使用复制操作符DUP,如上面R
文档评论(0)