




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,3.3 汇编语言基础(P111),西安电子科技大学 冯育长,序言计算机语言发展简介 一常量及其数制 二、汇编语言语句格式 三、伪指令 *(重点难点),2,硬 件,机器语言,汇编语言,高级语言,继 续,计算机语言发展简介,3,返 回,硬件是所有数字系统的基础 没有软件的硬件系统毫无意义 诺依曼原理: 程序存储+程序控制,4,机器语言: 用二进制代码表示的一种语言。 如,8086/8088的的机器代码 B034H 代表 (AL)34H 优点:机器语言是机器唯一能识别的语言, 是人机之间的接口界面。 执行速度最快,执行效率最高。 缺点:可读性差,表达的意义不直观, 编写、阅读、调试较困难。 面向机器每一种微处理器都有自己的机器语言,不能通用,返 回,5,汇编语言: 是一种符号语言,使用助记符表示相应的操作 如,8086/8088的机器代码B034H写成汇编语言 MOV AL,34H;(AL)34H 比机器语言更易于为人们所理解,可读性强。 与机器语言一一对应,是面向机器的语言 必须遵循一定的语法规则。(如指令的书写格式等) 可有效地访问、控制计算机的各种硬件设备,如磁盘、存储 器、CPU、I/O端口等。 70%以上的系统软件是用汇编语言编写的。,返 回,6,高级语言: 面向人的语言,与机器无关 BASIC PASCAL C/C+ JAVA 便于阅读,易学易用,不涉及硬件,具有通用性。 但目标代码冗长,占用内存多,从而执行时间长,效率不高 不能直接对某些硬件进行操作。 经常与汇编语言配合使用,应用十分广泛。,返 回,7,汇编语言与机器语言的关系,用汇编语言编写的程序称为汇编语言源程序,MASM.EXE 系统软件,汇编程序,汇编语言源程序 . ASM,机器语言 目标程序,汇编语言的两种语句类型,1.CPU指令 CPU执行的语句,如 MOV ,ADD 等 能够生成目标代码 2.伪指令(指示性语句) CPU不执行,而由汇编程序执行的语句,不生成目标代码. 定义逻辑段、指示程序开始和结束等.,8,一、汇编语言的常量及其数制,B 二进制数 D(或缺省) 十进制数 H 十六进制数 A 单引号表示ASCII码(字符串常量),用后缀表示常数的数制,等价,如:MOV AL,0110 0100B MOV AL,64H MOV AL,100 MOV AL,1 ;(AL)=31H MOV AL,0ABH,以AF开头的数,加前导0,9,允许使用一些简单的常量表达式,等价,如:MOV AL,3+5 MOV AL,16/2 MOV AL,8,10,二、汇编语言语句格式,标号: 助记符 操作数,操作数 ;注释,表示可选项 指令的符号地址,标号后要有冒号,注释前加分号,根据不同的指令 可有可无,可多可少,操作码 不可缺省,1. CPU指令语句格式:,如 L1:MOV AL,BL ;数据传送,11,标号由下列字符组成: AZ 或 az ? _ . 09 但09不能作为第一个字符,L1:MOV AL,BL,字母数字串, 大小写不分, 不要用保留字,合法的标号 L1: L21: NEXT: LOOP2: EXIT again:,非法的标号 1L: 21L: $NEXT: LOOP:,12,变量名 助记符 操作数,操作数 ;注释,变量的符号地址, 后无冒号,伪指令助记符 不可缺省,2.伪指令语句格式:,指示汇编程序要完成的操作。 用来定义变量,分配存储单元, 指示程序开始和结束等,MASM.EXE,1. CPU指令语句格式:,13,三、伪指令,CPU不执行,而由汇编程序执行的语句,指示汇编程序(MASM.EXE)要完成的操作。 用于定义变量、分配存储区、 定义逻辑段、指示程序开始和结束等,14,1、定义段的伪指令 2、定义数据的伪指令 3、变量的属性及属性操作符 4、定义字符串 5、问号?及DUP在DB和DW的应用,重点掌握: 伪指令的格式及实现的操作 伪指令的应用,15,1、定义段的伪指令,段名 SEGMENT 定位类型 组合类型 类别 段名 ENDS,说明段的起始位置, 缺省,则起始地址为 0H (段的起始地址能被16 整除),说明不同模块中同名段的连接方式 缺省,不组合(同名段在逻辑上相互独立),说明 段的结束,类别相同者, 组合时连续存放, 不组合时应缺省,16,2 、定义数据的伪指令,用于定义数据区中变量的类型 DB 定义字节数据 Defin Byte 指令格式: 变量名 DB 数1,数2 ;注释,可省略,可选,可有多个数据项,17,定义数据段DATA, 其中包含3个变量M,N和SUM,DATA SEGMENT M DB 10H N DB 25H SUM DB 0 DATA ENDS,例1,由系统自动为段分配内存, 且起始地址一定为0H,DATA 是程序员指定的数据段段名; SEGMENT 段的定义伪指令 段名可以是:DATA2 D1 D2 等,定义字节变量,ENDS 数据段结束,数据由此开始!,1FFFFH,20000H,20001H,20002H,18,定义数据段DATA, 其中包含3个变量M,N和SUM,DATA SEGMENT M DB 10H N DB 25H SUM DB 0 DATA ENDS,例1,由系统自动为段分配内存空间, 且起始地址一定为0H,M,10H,N,25H,SUM,00H,段的起始地址能被16整除 每个段最大为64KB 最小视需要而定,要点:,19,CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,M ADD AL,N MOV SUM,AL CODE ENDS END START,定义代码段CODE, 实现 M+NSUM,DATA SEGMENT M DB 10H N DB 25H SUM DB 0 DATA ENDS,数据段由此开始,CODE 是程序员指定的代码段段名; SEGMENT 段的定义伪指令,在代码段开头必须用 ASSUME指定各段的段寄存器: CS 代码段段寄存器, DS 数据段段寄存器, ES 附加段段寄存器, SS 堆栈段段寄存器, 注意语法格式,ENDS 代码段结束 END 源程序结束 一般在END之后是第一条指令的标号,段名DATA代表数据段的段地址值, 用户应完成DS的初始化,方法固定。,变量名表征变量的偏移地址 引用变量名访问变量直接寻址方式,20,CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,M ADD AL,N MOV SUM,AL CODE ENDS END START,定义代码段CODE, 实现 M+NSUM,DATA SEGMENT M DB 10H N DB 25H SUM DB 0 DATA ENDS,数据段由此开始,CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,2000H MOV DS,AX MOV AL,0000H ADD AL,0001H MOV 0002H,AL CODE ENDS END START,设已知地址如图示,则等价于:,由于地址是由系统自动分配的,故: 一律用段名代表段地址值,完成DS的初始化 用变量名访问变量直接寻址方式,21,CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,M ADD AL,N MOV SUM,AL CODE ENDS END START,定义代码段CODE, 实现 M+NSUM,DATA SEGMENT M DB 10H N DB 25H SUM DB 0 DATA ENDS,请问:,数据段由此开始,代码段的起始地址?,CS:IP 会自动初始化 2001H :0000H,22,35H,分析程序的运行结果?,DATA SEGMENT M DB 10H N DB 25H SUM DB 0 DATA ENDS,CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,M ADD AL,N MOV SUM,AL CODE ENDS END START,SUM=?,23,1、定义段的伪指令,段名 SEGMENT 段名 ENDS,要点归纳:,定义段的伪指令, 必须成对出现 必须有段名,ASSUME CS:CODE,DS:DATA,;用在代码段首行,指定段寄存器,段的起始地址由系统自动安排 段的起始地址能被16整除 (段的起始地址一定为0H) CS:IP 会自动初始化 用户应完成其它段寄存器和偏移地址寄存器的初始化,24,2、定义数据的伪指令,DB 定义字节数据 Defin Byte,归纳:,一般格式:,DB 定义字节数据 Defin Byte,一个数据占1个字节 DW 定义字数据 Defin Word, 一个数据占2个字节 DD 定义双字数据 Defin Double word,一个数据占4个字节 DQ 定义的数据为4字型(8字节) DT 定义的数据为10字节型,变量名 DB 数1,数2, ;注释,其它几个定义数据的伪指令:,25,画出变量在内存中的存放示意图,D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS,例2,M1,不再关心段地址的具体数值,01,M2,02,56H,34H,07H,00H,第一个变量的偏移地址一定是0000H 其他数据按顺序分配内存,26,画出变量在内存中的存放示意图,D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS,例2,M1,不再关心段地址的具体数值,01,M2,02,56H,34H,07H,00H,请问:变量M1的字节长度=?,2,设DS已初始化,写出指令把M1的第一个数据元素存入AL,MOV AL,M1,;直接寻址方式,写出指令把M1的第二个数据元素存入BH,MOV BH,M1+1,;直接寻址,M1+1 称为地址表达式,27,画出变量在内存中的存放示意图,D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS,例2,M1,不再关心段地址的具体数值,01,M2,02,56H,34H,07H,00H,请问:变量M2的字节长度=?,4,写出指令把M2的第一个数据元素存入AX,MOV AX,M2,;直接寻址方式,写出指令把M2的第二个数据元素存入BX,MOV BX,M2+2,;直接寻址,M2+2 称为地址表达式,28,画出变量在内存中的存放示意图,D1 SEGMENT M1 DB 1,2 M2 DW 3456H,7 D1 ENDS,M1,不再关心段地址的具体数值,01,M2,02,56H,34H,07H,00H,写出指令把DL的中的数据存入M1的首单元,MOV M1,DL,写出指令把DX中的数据存入M2的首单元,MOV M2,DX,DL,DL,DH,29,画出下列变量 占用内存空间的示意图。,D1 SEGMENT DATA_BYTE DB 10,10H,2*16,255 DATA_WORD DW 100,250H D1 ENDS,课堂作业1,30,画出下列变量 占用内存空间的示意图。,D1 SEGMENT DATA_BYTE DB 10,10H,2*16,255 DATA_WORD DW 100,250H D1 ENDS,DATA_BYTE,0AH,10H,20H,FFH,DATA_WORD,64H,00H,50H,02H,课堂作业1,31,分析程序的功能,课堂作业2,DATA SEGMENT X DB 5,1,6,3,4,5,6,0,8,9 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,0 MOV CX,10 MOV BX,0000H L1: ADD AL,BX ;(AL)(AL)+(BX) INC BX ;(BX)(BX)+1 DEC CX ;(CX)(CX)-1 JNZ L1;若(CX)0则转向L1 HLT ;暂停,(AL)=X0+X1+ +X9,32,数据段的段名为D2, 该段中字节变量VAR1中的数据为 5,10,-2,11。 该段中字变量VAR2中的数据为 5678H,100。 请写出数据段的程序代码。,D2 SEGMENT VAR1 DB 5,10,-2,11 VAR2 DW 5678H,100 D2 ENDS,课堂作业3,;或 D2 SEGMENT VAR1 DB 5,10 DB -2,11 VAR2 DW 5678H DW 100 D2 ENDS,33,编程,把VAR1的第一个数据存入AL, 把VAR2的第一个数据存入BX。 请写出代码段。,CODE SEGMENT ASSUME CS:CODE,DS:D2 START
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兴业银行株洲市芦淞区2025秋招笔试专业知识题专练及答案
- 平安银行无锡市江阴市2025秋招金融科技岗笔试题及答案
- 招商银行乌鲁木齐市天山区2025秋招笔试英文行测高频题含答案
- 平安银行重庆市九龙坡区2025秋招结构化面试经典题及参考答案
- 招商银行南京市六合区2025秋招笔试专业知识题专练及答案
- 2025年心理学在医学中的应用测试题答案及解析
- 广发银行天津市滨海新区2025秋招数据分析师笔试题及答案
- 中信银行郴州市北湖区2025秋招半结构化面试题库及参考答案
- 中信银行沧州市黄骅市2025秋招面试典型题目及参考答案
- 驾照文盲班考试题及答案
- 金属非金属矿山安全检查材料目录及分类
- 企业安全生产管理小组工作手册
- 厨房规划和设计行业营销策略方案
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 高中英语:倒装句专项练习(附答案)
- DB1331-T 025.4-2022 雄安新区工程建设关键质量指标体系:合交通
- 土地承包经营权长期转让协议
- 浙能笔试题库
- 2023年航空公司招聘:机场安检员基础知识试题(附答案)
- 道路车辆清障施救服务 投标方案(技术方案)
- 港口机械设备的维护与故障排除考核试卷
评论
0/150
提交评论