- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计算机原理(第3章)
* 作业 3.1 3.3~3.6 3.9~3.11 3.13~3.14 3.16 3.17 3.18 第3章 汇编语言程序设计 * 本章内容讲授学时8,上机学时4 第3章 汇编语言程序设计 3.1 汇编语言基础 3.2 伪指令 3.3 系统功能调用 3.4 汇编语言程序设计 本章要点 汇编语言源程序的结构 汇编语言语句格式 伪指令 功能调用 汇编语言程序设计 3.1 汇编语言基础 汇编语言源程序通常由一个或几个程序模块组成,每个模块一般由三个逻辑段组成: 数据段——存放数据、变量 堆栈段——堆栈区域 代码段——存放程序指令 3.1.2 汇编语言程序结构 * * 3.1.3 汇编语言程序语句 指令性语句 [标号:] 指令助记符 [目的操作数,源操作数] [;注释] 如: ADD AL,BL MOV AX,1000 指示性语句。指示性语句即伪指令 [名字] 伪指令 [操作数1,操作数2,…,操作数n] [;注释] 如: DSEG SEGMENT DB 32,45H,09H,0ACH * 数据项包括常量、变量、标号及表达式。 1.常量 二进制数,以B结尾。。 十进制数,如85。 十六进制数,以H结尾。第1个数字为A-F时,前面应加0,如0F160H。 字符串:用引号括起来的1个或多个字符。如‘ERROR!’, ’a’,汇编时被翻译成对应的ASCII码45H,52H,52H,4FH,52H,21H和61H。 3.1.4 汇编语言程序操作数 * 变量——即内存中的存储单元或数据区。 变量名——是存储单元(数据区)的符号地址或名字。 变量也有三个属性: 段地址—变量所在段的段地址 偏移量—变量单元地址与段首地址之间的位移量。 类 型—有BYTE、WORD和DWORD三种。 变量在程序中作为存储器操作数被引用。 2.变量 * 有三个属性: 段地址:即标号所在段的段地址; 偏移量:标号所代表存储单元的段内偏移地址; 类 型:NEAR或FAR: NEAR—表示标号所在语句与转移指令/ 调用指令在同一码段内,跳转时 只需改变IP即可。 FAR—标号所在语句与转移指令/调用 指令不在同一代码段内。 若没有对类型进行说明,默认为NEAR。 标号通常作为转移指令或CALL指令的转移地址。 3.标号——指令所在内存单元的符号地址 * 4.标识符——标号和变量名 使用规则 组成:A-Z(不分大小写), 0-9, ?@ . _ $ 不能以数字开头,句号(.)只能作为首字符 长度小于31个字符 不能与保留字(指令助记符、伪指令、预定义符号等)重名 不能重复定义 例如: 正确的:LP1, AGAIN, NEXT, _GO, OK_1 错误的:4M, LOOP, AAA, #HELP, + * 表达式是常数、寄存器、标号、变量与运算符的组合。 有数字表达式和地址表达式两种。 汇编时按优先规则对表达式进行计算,计算出具体的数值或地址。运行时不能改变。 表达式中的运算符有6类:算术、逻辑、关系、取地址、属性、杂类。 5.表达式 * 用于数字表达式,例: MOV AX,4*1024 汇编后的形式为: MOV AX,4096 用于地址表达式,例: LEA SI,TAB+3 若TAB的偏移地址为1000H,则汇编后的形式为: LEA SI,[1003H] 1)算术运算符—— +、-、*、/,MOD * 逻辑运算符只能用于数字表达式中。 例:MOV CL,36H AND 0FH 经汇编后:MOV CL,06H 注意,不要把逻辑运算符与逻辑运算指令混淆: 例:AND AX, 3FC0H AND 0FF00H 汇编后源操作数被翻译为:3F00H,所以上述指令与AND AX, 3F00H等价。 2)逻辑运算符—— AND、OR、XOR、NOT * 关系运算的结果是一个逻辑值:真或假 关系为真,结果为全1 关系为假,结果为全0 例:MOV BX,PORT GT 300H 若PORT的值大于300H,则汇编后为: MOV BX,0FFFFH 否则汇编后为: MOV BX,0 3)关系运算符——EQ、NE、LT、GT、LE、GE * SEG:取变量/标号的段地址 OFFSET:取变量/标号的偏移地址 例:VAR DB 12H …… MOV BX,OFF
文档评论(0)