版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、母亲卡第3章 宏汇编语言3.1 宏汇编语言格式3.2 汇编语句表达式3.3 伪指令3.4 DOS系统功能调用3.5 综合举例开 始3.1 宏汇编语言格式3.1.1 指令语句格式3.1.2 伪指令语句格式返回本章首页3.1.1 指令语句格式指令语句的一般格式如下:标号: 指令助记符 操作数 ;注释1标号:标号是机器指令语句存放地址的符号表示,代表该指令目标代码的第一个字节地址,后面必须紧跟冒号“:” 。2指令助记符:指令助记符为语句的核心成分,表示了该语句的操作类型。 3操作数:操作数表示指令助记符的操作对象。 4注释:注释均以分号开始,它可占一行或多行,一般放在一条语句的后面。 返回本节3.1
2、.2 伪指令语句格式伪指令语句格式如下:符号名 伪指令符 操作数 ;注释1符号名:符号名是伪指令语句的一个可选项。 2伪指令符:伪指令符指定汇编程序要完成的具体操作,如数据定义伪指令DB、DW、DD,段定义伪指令SEGMENT,假定伪指令ASSUME等。 3操作数:伪指令后面的操作数可以是常数、字符串、变量、表达式等,其个数由具体的伪指令决定,各个操作数之间必须以“逗号”分隔。4注释:伪指令的注释必须以“;”开始,其作用同指令语句中的注释部分。 返回本节3.2 汇编语句表达式3.2.1 常量3.2.2 变量3.2.3 标号3.2.4 表达式与运算符3.2.5 运算符的优先级返回本章首页3.2.
3、1 常量1数值常量2. 字符串常量1数值常量表3.1 各种形式数字常量格式对照表2. 字符串常量字符串常量是用单引号或双引号引起来的一个或多个字符。字符串常量是以各字符的ASC码表示的。如A用41H 表示,字符串A1B2用41H,31H,42H,32H表示。返回本节3.2.2 变量1变量2变量的定义(1)段属性(2)偏移地址属性(3)类型属性1变量表达式项是给变量或指定存储单元赋予初值,它有以下几种形式:(1)数值表达式(2) 字符串表达式(3)地址表达式(只适用DW和DD两个伪指令)(4)? 表达式(5)带DUP的表达式2变量的定义数据定义伪指令可以为一个或连续的存储单元设置数值初值。【例3
4、.1】为数据段分配存储单元。DATASEGMENTADB11H,12H,13HBDW1122H,3344HCDD12345678HDATAENDS上述变量的存储单元分配及初始化情况如下图3.1所示。 (1)数值表达式图3.1 数据段中数据存储分配图字符串表达式中的字符串必须用引号引起来。DB、DW、DD伪指令将字符串中的各字符均以ASC码形式存放在相应的存储单元,但表示形式各不相同。【例3.2】为字符串分配存储单元。DATASEGMENTSTR1DB1234STR2DWAB,CD,ASTR3DDABDATAENDS其存储单元分配如下图3.2所示。(2) 字符串表达式图3.2 数据段存储分配图(
5、3)地址表达式(只适用DW和DD两个伪指令)如果该地址表达式为一变量(或标号)名,用DW伪指令则是取它的偏移地址来初始化变量,用DD伪指令则是取它的段首址和偏移地址来初始化变量。例如: BUF1DWA BUF2DDB 在表达式中使用重复数据操作符DUP,可以为连续的存储单元提供重复数据,其格式为: N DUP(表达式)其中N为重复因子,只能取正整数,表示定义了N个重复数据存储单元,其类型由它前面的数据定义伪指令确定,而每个数据存储单元中的初值由DUP后面圆括号中的表达式给定。例如: BUF DB 100 DUP(0)以上语句定义了以BUF为首址,大小为100个字节,初值为0的数据存储单元。(5
6、)带DUP的表达式返回本节3.2.3 标号标号是一条指令语句的符号地址。在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,以便在转移类指令(含子程序调用指令)中直接引用这个标号。因此,标号可作为转移类指令的操作数,即转移地址。【例3.3】符号地址表示。 NEXT:MOVAL, SI;带标号NEXT的指令 DEC CX JNE NEXT ;标号NEXT作转移指令的操作数1段属性2偏移地址属性3类型属性标号也具有三种属性 返回本节3.2.4 表达式与运算符1算术运算符2逻辑运算符3关系运算符4属性运算符5数值返回运算符算术运算符包括:(加)、(减)、*(乘)、(除)、MOD(求
7、模)、SHL(左移)、SHR(右移)几种,它既可以用于数值表达式又可用于地址表达式。1算术运算符NUM1EQU25*4 50;NUM1=50NUM2EQUNUM1 / 7;NUM2=7NUM3DBNUM1 MOD 7;NUM3=1VAR1DB1,2,3,4,5VAR2DB12345NUM4EQUVAR2-VAR1;NUM4=5NUM5EQU0FH MOVAL,NUM5 SHL 4;(AL)=11110000BMOVBL,NUM5 SHR 4; (BL)=00000000B【例3.4】用算术运算符进行数值表达式运算。逻辑运算符包括:逻辑乘(AND)、逻辑加(OR)、按位加(XOR)、逻辑非(NO
8、T)四种运算。由于逻辑运算是按位操作,且在汇编过程中完成,因而运算的结果仍为整数常量。【例3.5】用逻辑运算符进行运算。MOVAL,34H AND 0FH ;04HALMOVBL,05H OR 30H ;35HBLMOVCX,NOT 00FFH ;0FF00HCXMOVDX,789AH XOR 000FH;7895HDX2逻辑运算符关系运算符包括:相等(EQ),不等(NE),小于(LT),大于(GT),小于等于(LE)及大于等于(GE)。 【例3.6】用关系运算符进行数值表达式运算。NUM1DB10 LT 5 ;NUM1=0NUM2DB0AAAAH GT 7FFFH;NUM2=0FFFFH M
9、OVAX,A EQ 41H;0FFFFHAX MOVBX,NUM2 LT NUM1;0BX3关系运算符(1)PTR运算符格式: 类型 PTR 地址表达式 PTR与EQU连用,可定义与PTR右边地址表达式类型不同的新变量名或新标号,但不另分配存储单元。 4属性运算符(1)SEG 运算符(2)OFFSET运算符(3)TYPE运算符(4)LENGTH运算符(5)SIZE运算符(6)字节分离运算符5数值返回运算符(1)SEG 运算符格式:SEG 变量或标号功能:分离出其后变量或标号所在段的段首址。例如:MOVAX,SEGARRMOVDS,AX(2)OFFSET运算符格式:OFFSET 变量或标号功能:
10、分离出其后变量或标号的偏移地址。例如:MOV BX,OFFSET BUF(3)TYPE运算符格式:TYPE 变量或标号功能:分离出其后变量或标号的类型。如果是变量,将返回该变量的类型对应字节数;如果是标号,则返回代表标号类型的数值。它们之间的关系见表3.2所示。(4)LENGTH运算符格式:LENGTH 变量功能:取出变量所含的数据存储单元个数。 【例3.12】取出变量占存储单元个数。DATASEGMENTADBABCDEFBDW10DUP(1,2DUP(2)CDB3,20DUP(0)DATAENDS MOVAX,LENGTH A;1AXMOVBX,LENGTHB;10BXMOVCX,LENG
11、THC;1CX(5)SIZE运算符格式:SIZE 变量功能:取出变量所含的数据存储区大小。其返回值为: LENGTH 变量 * TYPE 变量例如:上例中A、B、C三变量:SIZE A = LENGTH A*TYPE A = 1SIZE B = LENGTH B*TYPE B = 20SIZE C = LENGTH C*TYPE C = 1(6)字节分离运算符字节分离运算符包括:HIGH和LOW。格式:HIGH 常量或地址表达式LOW 常量或地址表达式功能:HIGH 用来分离出其后16位常量或地址表达式的偏移量的高字节;LOW用来分离出其后16位常量或地址表达式偏移量的低字节。返回本节3.2.
12、5 运算符的优先级表3.3 运算符的优先级返回本节3.3 伪指令3.3.1 数据定义伪指令3.3.2 符号定义伪指令3.3.3 段定义伪指令SEGMENT/ENDS3.3.4 假定伪指令ASSUME3.3.5 置汇编地址计数器伪指令ORG3.3.6 源程序结束伪指令返回本章首页3.3.1 数据定义伪指令常用的数据定义伪指令有DB,DW,DD,DQ,DT。格式:变量名数据定义伪指令表达式,功能:定义数据存储区,类型由数据定义伪指令确定,初值由表达式给定。 返回本节3.3.2 符号定义伪指令1等价伪指令2等号伪指令3定义符号名伪指令1等价伪指令格式:符号名 EQ 表达式功能:为常量、表达式及其他各
13、种符号定义一个等价的符号名,但它不申请存储单元。用途: 用符号表示常量、数值表达式,即定义符号常量。使用符号常量可使程序简单明了,增强程序的可读性和通用性。 EQU与属性运算符TR或THIS联合使用,可以给变量或标号定义新的类型属性并重新命名,但保持其段偏移地址属性不变。 利用EQU可以用一个符号名替代一个复杂的地址表达式和其他一些符号,如指令助记符、变量名、标号、段名、寄存器名、宏定义名等。 2等号伪指令格式:符号名 = 表达式功能:为常量、表达式及其他各种符号定义一个等价的符号名,并能对所定义的符号多次重复定义,且以最后一次定义的值为准。【例3.17】定义等价符号名。COST = 20M=
14、 MOVLOST = LOST+10;30LOSTM= ADD;M=ADD3定义符号名伪指令3定义符号名伪指令格式:变量名或标号 LABEL 类型功能:定义与原有变量类型不同的新变量或为指令语句定义有指定类型的标号。通常与数据定义伪指令连用,其功能类似语句“变量名或标号 EQU THIS 类型”。【例3.18】定义新类型的变量。 DDBUFLABEL DWORDBUFDB 200 DUP(0) A LABEL FARB: LEA DX,BUF 返回本节3.3.3 段定义伪指令SEGMENT/END1段名2定位方式3类别4组合方式1段名段名是为该段起的名字,用来指出汇编程序为该段分配的存储区起始
15、位置。 2定位方式(1)PARA:表示本段必须从能被16整除的地址处开始存放,即段起始地址最低四位必须是0。(2)WORD:表示本段要从一个偶数地址处开始存放,即段起始地址的最低一位必须是0。(3)BYTE:表示本段起始地址可以从任一地址处开始存放。(4)PAGE:表示本段要从能被256整除的地址处开始存放,即起始地址的最低八位必须是0。【例3.19】对连接程序进行连接后存储区各段相对位置分布。DATA1SEGMENTDATACODESEGMENTCODESTACK1SEGMENTSTACKDATA2SEGMENTDATASTACK2SEGMENTSTACK经连接程序连接后,各段的相对位置如下
16、:DATA1SEGMENTDATADATA2SEGMENTDATASTACK1SEGMENTSTACKSTACK2SEGMENTSTACKCODESEGMENTCODE3类别组合方式有六种类型可供选择。 (1)“不选择”(2)PUBLIC (3)STACK (4)COMMON (5)MEMORY (6)AT表达式 4组合方式【例3.20】有两个模块,各模块段定义如下: 模块1: DATA1SEGMENT PARA PUBLIC DATA1M1DB 45H DUP(0)DATA1ENDSDATA2SEGMENT PARA COMMON DATA2N1 DB 102H DUP(0)DATA2END
17、SEND 模块2:DATA1SEGMENT PARA PUBLIC DATA1M2DB 104H DUP(11H)DATA1ENDSDATA2SEGMENT PARA COMMON DATA2N2DB 105H DUP(0)DATA2ENDSDATA3SEGMENTT1DB 50 DUP(20H)DATA3ENDSEND该段的定位组合方式示意图如图3.3所示。图3.3 模块1、模块2连接后段的定位组合方式示意图返回本节3.3.4 假定伪指令ASSUME格式:ASSUME 段寄存器:段名 ,段寄存器:段名功能:建立段寄存器与段之间的对应关系。该伪指令一般出现在代码段中。【例3.21】用ASSUM
18、E伪指令建立代码段、堆栈段与CS和SS的对应关系。DATA1SEGMENTADB 1,2,3DATA1ENDSSTACKSEGMENT STACKDB200 DUP(0)STACKENDSDATA2SGEMENTBDB 123ABCDATA2ENDSDATA3SEGMENTCDB ?,?,?DATA3ENDSCODESEGMENTASSUMEDS:DATA1,ES:DATA2,CS:CODE,SS:STACKSTART:MOVAX,DATA1MOVDS,AX;DATA1DSMOVAX,DATA3MOVES,AX;DATA3ESQ1:MOVAL,AQ2:MOVC,ALASSUMEDS:DATA2
19、;建立DS与B段的对应关系MOVAX,DATA2MOVDS,AX MOVAL,BMOVC,ALCODEENDS ENDSTART返回本节3.3.5 置汇编地址计数器伪指令ORG格式:ORG 数值表达式功能:将数值表达式的值赋给汇编地址计数器。数值表达式的值须为065535之间的非负整数。【例3.22】给汇编地址计数器赋值。DATASEGMENT ORG10; 置值为10VAR1DW 100H,200HORG+5; 置的值为14+5,即为19VAR2DB 1,2, +1,+2NEQU -VAR2; ()=23DATAENDS返回本节3.3.6 源程序结束伪指令格式:END 表达式功能:该语句标志
20、整个程序的结束,是源程序的最后一条语句。返回本节3.4 DOS系统功能调用3.4.1 概述3.4.2 常用的DOS系统功能调用返回本章首页3.4.1 概述对8086系列机来说,MS-DOS操作系统是最主要的操作系统。MS-DOS操作系统除了具有较为完整的文件管理功能之外,同时还为各种应用程序、外围设备等提供软件接口。它由三部分组成:IO.SYS、MSDOS.SYS以及COMMAND.COM。DOS系统功能调用的方法一般可分为以下几步: 设置所要调用功能的入口参数。 在AH寄存器中存入所要调用功能的功能号。 INT 21H指令自动转入中断子程序入口。 相应中断子程序运行完毕,可按规定取得出口参数
21、。 返回本节3.4.2 常用的DOS系统功能调用1单字符输入(1号调用)2单字符显示(2号调用)3打印输出(5号调用)4结束调用(4CH号调用)5显示字符串(9号调用)6字符串输入(10号调用)1单字符输入(1号调用)格式:MOVAH,1INT21H功能:从键盘输入字符的ASCII码送入寄存器AL中,并送显示器显示。 2单字符显示(2号调用)格式:MOV DL,待显示字符的ASCII码MOV AH,2INT 21H功能:将DL寄存器中的字符送显示器显示,如果DL中为CTRL+BREAK的ASCII码,则退出。3打印输出(5号调用)格式:MOVDL,待打印字符的ASCII码MOVAH,5INT2
22、1H功能:将DL寄存器中的字符送打印机打印。4结束调用(4CH号调用)格式:MOVAH,4CH INT21H功能:终止当前程序并返回调用程序。5显示字符串(9号调用)格式:LEADX,待显示字符串首偏移地址MOVAH,9INT21H功能:将当前数据区中以结尾的字符串送显示器显示。 6字符串输入(10号调用)格式:LEADX,缓冲区首偏移地址MOVAH,10INT21H功能:从键盘上输入一字符串到用户定义的输入缓冲区中,并送显示器显示。DATASEGMENTSTRDB 0DH,0AH,Example of string display!DATAENDSSTACKSEGMENT STACKDB10
23、0 DUP(0)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACK【例3.25】若要在屏幕上显示字符串“Example of string display!”,则程序如下: BEGIN:MOVAX ,DATAMOVDS,AXLEADX,STRMOVAH ,9INT21HMOVAH,4CH INT21HCODEENDSENDBEGIN返回本节3.5 综合举例【例3.27】已知一数据段中的数据为:DATASEGMENTADW MBUFDB AB,0DH,0AHCEQU 500HBDW 0FFAAHDDD BUFMDB 2DUP(1) ,2DUP(2,B)DATAENDS请画出该数据段数据存储的形式。 返回本章首页该数据段在主存中的存储形式如左图所示。DATASEGMENTNUMDB 01000101BBUFDB 0DH,0AH,(NUM)=STRDB 4 DUP(?)DATAENDSSTACKSEGMENT STACKDB200 DUP(0)STACKENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODE【例3.28】阅读下列程序,指出此程序所完成的功能以及在显示器上显示的内容。 START:MOVAX,DATA MOVDS,AX LEADI,STRMOVAL,N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东电信规划设计院2026届校招备考题库及一套答案详解
- 上师大附中嘉定新城分校2026学年教师招聘与实习生招募备考题库(第二批次)及一套参考答案详解
- 2025年云南水务投资股份有限公司宁洱县污水处理厂招聘备考题库及一套参考答案详解
- 2025年天峨县消防救援大队关于招录政府专职消防员的备考题库及参考答案详解1套
- 2025年西安交通大学电信学部管理辅助人员招聘备考题库及一套答案详解
- 南京市第二医院(南京市公共卫生医疗中心)2026年公开招聘卫技人员备考题库及一套完整答案详解
- 2025年初中语文、初中数学、初中物理、高中物理教师招聘备考题库及答案详解一套
- 2025年恒丰银行合肥分行社会招聘备考题库及完整答案详解1套
- 2025年保定市博物馆招聘备考题库含答案详解
- 2025年武汉某初级中学招聘骨干教师6人备考题库有答案详解
- 郑伯克段于鄢-2
- TCSUS-智能水表技术标准
- TSG特种设备安全技术规范TSGD-202工业管道安全技术规程
- 利用EXCEL画风机特性曲线-模版
- 人体工效评估程序
- 西南大学PPT 04 实用版答辩模板
- 国家开放大学电大《政治学原理》形考任务1及4网考题库答案
- 管理百年智慧树知到答案章节测试2023年
- 国家开放大学《刑法学(1)》形成性考核作业1-4参考答案
- 工艺美术专业课程配套练习二
- 2022“博学杯”全国幼儿识字与阅读大赛选拔试卷
评论
0/150
提交评论