- 1、本文档共196页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术 第4章 汇编语言程序设计1课件
第4章 汇编语言程序设计;ASSUME CS:MY_CODE, ;规定CS和DS的内容
DS:MY_DATA
PORT_VA1 EQU 3 ;端口的符号名
GO: MOV AX, MY_DATA ;DS初始化为MY_DATA
MOV DS, AX
MOV SUM, 0 ;清SUM单元;CYCLE: CMP SUM, 100 ;SUM单元与100相比较
JNA NOT_DONE ;若未超过,转至NOT_DONE
MOV AL, SUM ;若超过,把SUM单元的内容
OUT PORT_VAL, AL ;通过AL输出
HLT ;然后停机;NOT DONE:IN AL, PORT_VAL ;未超过时,输入下一个字节
ADD SUM, AL ;与以前的结果累加
JMP CYCLE ;转至CYCLE
;MY CODE ENDS ;代码段结束
END GO ;整个程序结束
由这个例子看到,8086汇编的一个语句行是由4个部分组成的,即
标号 操作码 操作数 ;注释(或名字);4.1.2 8086汇编语言源程序的格式;4.2 语句行的构成;(2)数字
阿拉伯数字:0123456789。
(3)特殊字符
;2.界符(Delimiters);3.常量(Constants);② 十进制常量;③ 八进制常量;④ 十六进制常量;(2)字符串常量;4.标识符(Identifiers); 下面是一些标识符的例子:
X
GAMMA
JACKS
THIS_DONE
THISDONE
;5.保留字(Reserved Words);(1)指令助记符;(2)寄存器名;(4)其他保留字;6.注释(Comment);4.2.2 符号(Symbol);(2)偏移量(OFFSET),即变量单元地址与段的起始地址之间的偏移量(16位)。
(3)类型(TYPE),变量有三种类型:字节(Byte)、字(word)和双字(Double Word)。
;3.标号(Label)
4.数
5.其他符号
;4.2.3 表达式(Expressions);(1)常量操作数;(2)存储器操作数; 变量可以具有以下几种寻址方式:
① 直接寻址
② 基址寻址
③ 变址(索引)寻址
④ 基址变址寻址
;2.运算符(Operators);(1)算术运算符; 因此,对例子中的存储器地址作如下运算:
SUM+2
CYCLE-5
NOT_DONE-GO
是有效的表达式。而
SUM-CYCLE;(2)逻辑运算符;(3)关系运算符;④ 大于Greater Than(GT)
⑤ 小于或等于Less Than or Equal(LE)
⑥ 大于或等于Greater Than or Equal(GE)
; ??在程序中有以下关系运算:
MOV BX, PORT_VAL LT 5
若PORT_VAL的值小于5,关系为真,则汇编程序在汇编后产生的语句为:
MOV BX, 0FFFFH
若PORT_VAL的值不小于5,则关系为假,汇编后产生的语句为:
MOV BX, 0;(4)分析运算符
(5)合成运算符;4.2.4 语句(Statements); 指令语句,汇编程序把它们翻译成机器代码,这些代码命令8086执行某些操作。如MOV、ADD、JMP等。; 对于指示性语句(伪指令),汇编程序并不把它们翻译成机器代码,实际上也不可能翻译成机器代码,只是用来指示、引导汇编程序在汇编时做一些操作,如定义符号、分配存储单元、初始化存储器等,所以伪指令本身不占用存储单元,例如:
MY_PLACE DB ?
;指令语句的格式为:
标号:助记符 参数, …, 参数;注释
指示性语句的格式为:
名字 命令 参数, …, 参数 ;注释;4.3 指示性语句(Directive Statements);4.3.1 符号定义语句;2.等号(Equal sign)=语句
文档评论(0)