武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第四章 汇编语言程序设计

DAI DB' This is a sample progran,i数据段 DATA SEGMENT DB ODH,OAH, 'S 回车和换行符以及结束符 DATA ENDS STACK SEGMENT ;堆栈段 STI DB 100 DUP() STACK ENDS CODE SEGMENT ;代码段 MAIN PROC FAR ASSUME CS:CODE,DS:DATA, SS: STACK;段分配 START:MOⅤAX, STACK ;送堆栈段地址 MOV SS.AX PUSH DS ;返回DOS MOVAX,O PUSHAX MOVAXDATA 送数据段地址 MOV DS.AX MOVAH.9 ;DOS9号功能调用,显示字符串 MOV DXOFFSET DAI INT 21H RET MAIN ENDP CODE ENDS END START
DATA SEGMENT ;数据段 DA1 DB 'This is a sample program.' DB 0DH,0AH,‘$‘ ;回车和换行符以及结束符 DATA ENDS STACK SEGMENT ;堆栈段 ST1 DB 100 DUP(?) STACK ENDS CODE SEGMENT ;代码段 MAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK ;段分配 START: MOV AX,STACK ;送堆栈段地址 MOV SS,AX PUSH DS ;返回DOS MOV AX,0 PUSH AX MOV AX,DATA ;送数据段地址 MOV DS,AX MOV AH,9 ;DOS 9号功能调用,显示字符串 MOV DX,OFFSET DA1 INT 21H RET MAIN ENDP CODE ENDS END START

第四章汇编语言程序设计 汇编语言:利用指令助记符、符号地址、标号来编写的计算机语 言。是机器语言的符号表示,是面向机器的语言,是较低级的语 利用汇编语言编写的程序称为源程序,需要通过汇编程序翻 译成二进制代码的目标程序,再经过与库文件的连接,最后得到 可执行文件程序,才能在机器上直接运行。 41汇编语言程序格式 4.1.1.汇编语言的格式 1.指令性语句 指令性语句是指汇编程序可将其汇编成目标代码,能被机器 执行的语句
第四章 汇编语言程序设计 汇编语言:利用指令助记符、符号地址、标号来编写的计算机语 言。是机器语言的符号表示,是面向机器的语言,是较低级的语 言。 利用汇编语言编写的程序称为源程序,需要通过汇编程序翻 译成二进制代码的目标程序,再经过与库文件的连接,最后得到 可执行文件程序,才能在机器上直接运行。 4.1 汇编语言程序格式 4.1.1.汇编语言的格式 1. 指令性语句 指令性语句是指汇编程序可将其汇编成目标代码,能被机器 执行的语句

格式如下: 标号:]指令助记符[操作数;注解] 其中:用方括号括起来的部分,可以有也可以没有,是可选项。 每部分之间用空格(至少一个)分开,一行最多可有132个字符。 标号:是给指令或某一存储单元地址所起的名字。可由字母:A Z;数字:0~9;特殊字符:?、·、@、一、S等字符组成。 数字不能作标识符的第一个字符,而圆点仅能用作第一个字符 标识符最长为31个字符。当标识符后跟冒号时,表示是标号。 它代表该行指令的起始地址;当标识符后不带冒号时,表示变 量;伪指令前的标识符不加冒号。 指令助记符:表示不同操作的指令,可以是8086的指令助记符, 也可以是伪指令。 操作数:是指令执行的对象。根据指令的要求,可能有一个 两个或者没有,如果一条指令有多个操作数,则操作数之间必 须用“,”分隔
格式如下: [标号:] 指令助记符 [操作数][;注解] 其中:用方括号括起来的部分,可以有也可以没有,是可选项。 每部分之间用空格(至少一个)分开,一行最多可有132个字符。 标号:是给指令或某一存储单元地址所起的名字。可由字母:A ~ z ; 数字:0 ~ 9 ; 特殊字符:?、·、@、—、$等字符组成。 数字不能作标识符的第一个字符,而圆点仅能用作第一个字符。 标识符最长为31个字符。当标识符后跟冒号时,表示是标号。 它代表该行指令的起始地址;当标识符后不带冒号时,表示变 量;伪指令前的标识符不加冒号。 指令助记符:表示不同操作的指令,可以是8086的指令助记符, 也可以是伪指令。 操作数:是指令执行的对象。根据指令的要求,可能有一个、 两个或者没有,如果一条指令有多个操作数,则操作数之间必 须用“ , ”分隔

例如:RET;无操作数 COUNT: INC CX;一个操作数 如果是伪指令,则可能有多个操作数,例如: COST DB3,4,5,6,7;5个操作数 MOV AX,[BP十4;第二个操作数为表达式 注释:该项是可选项,可有可无,是为源程序所加的注解,用于提 高程序的可读性。注释前必须用分号。 2.伪指令语句 伪指令用于对汇编程序进行控制,它不像机器指令(指令性语 句)那样是在程序运行期间由计算机来执行的,它是在汇编程序对 源程序汇编期间由汇编程序处理的操作,可以完成如数据定义、分 配存储区、指示程序结束等功能。其格式和汇编指令一样,但一般 不产生目的代码,即不直接命令CPU去执行什么操作。 格式:名字伪指令指示符操作数[,操作数][;注释]
例如:RET ;无操作数 COUNT:INC CX ;一个操作数 如果是伪指令,则可能有多个操作数,例如: COST DB 3,4,5,6,7 ;5个操作数 MOV AX,[BP十4] ;第二个操作数为表达式 注释:该项是可选项,可有可无,是为源程序所加的注解,用于提 高程序的可读性。注释前必须用分号。 2. 伪指令语句 伪指令用于对汇编程序进行控制,它不像机器指令(指令性语 句)那样是在程序运行期间由计算机来执行的,它是在汇编程序对 源程序汇编期间由汇编程序处理的操作,可以完成如数据定义、分 配存储区、指示程序结束等功能。其格式和汇编指令一样,但一般 不产生目的代码,即不直接命令CPU去执行什么操作。 格式: 名字 伪指令指示符 操作数[,操作数] [;注释]

名字:是给伪指令取的名称,它用符号地址表示,名字后不允 许带冒号”:”,名字可以省略,伪指令中名字通常是变量名、 段名、过程名、符号名等 伪指令指示符:是汇编程序MASM规定的符号,常用的有变量 定义语句 OBDW),符号定义语句(EQU=),段定义语句 ( SEGMENT…ENDS),段分配语句( ASSUME),结构定义语句 ( STURO,ENDS),过程定义语句(PROC…ENDP)等。 操作数:是由伪指令具体要求的,有的伪指令不允许带操作数, 有的伪指令要求带多个操作数,多个操作数之间必须用逗号隔 开。操作数可以是常数、变量、字符串、表达式等 注释的功能和使用与指令性语句相同
名字:是给伪指令取的名称,它用符号地址表示,名字后不允 许带冒号”:”,名字可以省略,伪指令中名字通常是变量名、 段名、过程名、符号名等。 伪指令指示符:是汇编程序MASM规定的符号,常用的有变量 定义语句(DB DW),符号定义语句(EQU =),段定义语句 (SEGMENT …ENDS),段分配语句(ASSUME),结构定义语句 (STURC …ENDS),过程定义语句(PROC …ENDP)等。 操作数:是由伪指令具体要求的,有的伪指令不允许带操作数, 有的伪指令要求带多个操作数,多个操作数之间必须用逗号隔 开。操作数可以是常数、变量、字符串、表达式等。 注释的功能和使用与指令性语句相同

3表达式 表达式是由运算符和操作数组成的序列,汇编语言中的表达式 在汇编时计算,在运行时已经是常数了。在汇编时产生一个确定的 值。这个值可以仅表示一个常量,也可以表示一个存储单元的偏移 地址,相应的表达式称为常量表达式和地址表达式。表达式可出现 在常数的地方。 (1)常数 汇编语言语句中出现的常数有5种: ①二进制数:后面加B,如0100000B ②八进制数:后面加字母Q或O,如202Q或2020。 ③十进制数:后跟D或不跟字母,如85D或85。 ④十六进制数:在后面加H,若是字母开始,前面要加0,以示 和变量的区别。 ⑤字符和字符串字符串用单引号)或双引号(“)引起来
3 表达式 表达式是由运算符和操作数组成的序列,汇编语言中的表达式 在汇编时计算,在运行时已经是常数了。在汇编时产生一个确定的 值。这个值可以仅表示一个常量,也可以表示一个存储单元的偏移 地址,相应的表达式称为常量表达式和地址表达式。表达式可出现 在常数的地方。 (1)常数 汇编语言语句中出现的常数有5种: ① 二进制数:后面加B,如01000001B。 ② 八进制数:后面加字母Q或O,如202Q或202O。 ③ 十进制数:后跟D或不跟字母,如85D或85。 ④ 十六进制数:在后面加H,若是字母开始,前面要加0,以示 和变量的区别。 ⑤字符和字符串字符串用单引号(‘)或双引号(“)引起来

(2)常量操作数 常量操作数是一个数值操作数,一般是常量或者是表示常量的 标识符。可以为数字常量操作数或字符串常量操作数。前者可采用 二进制、八进制、十进制或十六进制等计数形式;而后者则为相应 字符的ASCI码。 (3)存储器操作数 存储器操作数是一个地址操作数,代表一个存储单元的地址, 通常以标识符的形式出现。 存储器操作数可以分为变量及标号两种类型,如果存储器操作 数所代表的是某个数据在数据段、附加段或堆栈段中的地址,那么 这个存储器操作数就称为变量;如果存储器操作数所代表的是某条 指令代码在码段中的地址,那么这个存储器操作数称为标号。变量 所对应的存储单元内容在程序的运行过程中是可以改变的,标号通 常作为转移指令或调用指令的目标操作数,在程序运行过程中不能 改变
(2)常量操作数 常量操作数是一个数值操作数,一般是常量或者是表示常量的 标识符。可以为数字常量操作数或字符串常量操作数。前者可采用 二进制、八进制、十进制或十六进制等计数形式;而后者则为相应 字符的ASCII码。 (3)存储器操作数 存储器操作数是一个地址操作数,代表一个存储单元的地址, 通常以标识符的形式出现。 存储器操作数可以分为变量及标号两种类型,如果存储器操作 数所代表的是某个数据在数据段、附加段或堆栈段中的地址,那么 这个存储器操作数就称为变量;如果存储器操作数所代表的是某条 指令代码在码段中的地址,那么这个存储器操作数称为标号。变量 所对应的存储单元内容在程序的运行过程中是可以改变的,标号通 常作为转移指令或调用指令的目标操作数,在程序运行过程中不能 改变

存储器操作数有三个方面的属性: (1)段地址:即存储器操作数所对应的存储单元所在段的段地 址 (2)偏移地址:即存储器操作数所对应的存储单元在所在段内 的偏移地址; (3)类型:变量的类型是相应存储单元所存放的数据项的字节 数;而标号的类型则反映了相应存储单元地址在作为转移或调 用指令的目标操作数时的寻址方式,可有两种情况,即NEAR (-1)和FAR(一2)。 (4)常量表达式 由常量操作数及运算符构成,在汇编时产生一个常量。 如PORT、VAL+1、 OFFSET SUM、 SEG SUM、TYPE CYCLE等
存储器操作数有三个方面的属性: (1) 段地址:即存储器操作数所对应的存储单元所在段的段地 址; (2) 偏移地址:即存储器操作数所对应的存储单元在所在段内 的偏移地址; (3) 类型:变量的类型是相应存储单元所存放的数据项的字节 数;而标号的类型则反映了相应存储单元地址在作为转移或调 用指令的目标操作数时的寻址方式,可有两种情况,即NEAR ( -1 )和FAR( -2 )。 (4)常量表达式 由常量操作数及运算符构成,在汇编时产生一个常量。 如 PORT、 VAL + 1、 OFFSET SUM 、 SEG SUM 、 TYPE CYCLE等

(5)地址表达式 由存储器操作数与运算符构成,必须有明确的物理意义 例如SUM+2、 CYCLE-5 表达式SUM十2、 CYCLE-5的值仍然是一个存储器操作数, 该存储器操作数的段地址与类型属性分别与存储器操作数SUM及 CYCLE相同,但偏移地址分别比SUM及 CYCLE大2或小5。表达式 是在汇编时计算的,而变量单元的内容在程序的运行过程中可以改 变
(5)地址表达式 由存储器操作数与运算符构成,必须有明确的物理意义。 例如 SUM+2、CYCLE-5 表达式SUM+2、CYCLE-5的值仍然是一个存储器操作数, 该存储器操作数的段地址与类型属性分别与存储器操作数SUM及 CYCLE相同,但偏移地址分别比SUM及CYCLE大2或小5。表达式 是在汇编时计算的,而变量单元的内容在程序的运行过程中可以改 变

412汇编语言的运算符(P128-136) 算术运算符、逻辑运算符和关系运算符 运算符有: 算术运算:十、一、×、÷、mod、SHL、SHR 逻辑运算:and、or、xor、not 关系运算: EQNNE/LT/GT/LE/GE(相等不等/小于/大于小于 或等于/大于或等于),结果为真,则返回0 FFFFH,假则为0 2.数值返回运算符SEG、 OFFSET、TYPE、SLE和 LENGTH (P131) 加在变量或标号前,返回运算对象的某个参数值(如:段地 址值、偏移地址值、类型属性、变量包含的单元数等)
4.1.2 汇编语言的运算符(P128--136) 1.算术运算符、逻辑运算符和关系运算符 运算符有: 算术运算:+、-、×、÷、mod、SHL、SHR 逻辑运算:and、or、xor、not 关系运算:EQ/NE/LT/GT/LE/GE(相等/不等/小于/大于/小于 或等于/大于或等于),结果为真,则返回0FFFFH,假则为0。 2. 数值返回运算符SEG、OFFSET、TYPE、SIZE和LENGTH (P131) 加在变量或标号前,返回运算对象的某个参数值(如:段地 址值、偏移地址值、类型属性、变量包含的单元数等)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第四章作业.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第三章 8086的寻址方式和指令系统.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第五章 存储器.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第一章 微型计算机概述(王言前).ppt
- 华为:《编程规范与案例》软件编程规范总则CHECKLIST.doc
- 华为:《编程规范与案例》软件编程规范培训实例与练习.doc
- 华为:《编程规范与案例》目录.doc
- 华为:《编程规范与案例》Panorama系统程序开发规范之二.doc
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》Visual_Fortran上机简要步骤(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》FORTRAN语言上机简单步骤(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第十三章 文件简介(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第十二章 数据共用存储单元和数据块子程序(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第十一章 子程序(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第十章 语句函数(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第九章 数组 (赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第七章 数据的输入输出(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第六章 Fortran的数据结构(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第五章 循环结构的实现(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第四章 逻辑运算和选择结构(赵永军).ppt
- 中国石油大学(华东)计算机与通信工程学院:《Fortran程序设计语言》第三章 Fortran语言程序设计初步(赵永军).ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第二章 8086系统结构.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第十四章 显示器、打印机、磁盘.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第十三章 键盘与LED显示技术.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第十二章 8237DMA控制器.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第十一章 A/D、D/A转换器.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第十章 串行通信和可编程接口芯片8251A.ppt
- 武汉科技大学(武汉科技学院):《微机原理与汇编语言》课程教学资源(PPT课件)第九章 可编程并行接口芯片Intel 8255A.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第1章 Java概述(邱钊).ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第10章 多线程 thread.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第11章 输入输出流及文件.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第12章 Java的网络编程.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第2章 Java基本编程结构.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第3章 字符串和数组.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第4章 对象和类.ppt
- 本章将继续探讨后两个特性,即继承性和多态性。海南大学:《Java 2实用教程(第3版)》PPT教学课件_第5章 继承与多态.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第6章 异常处理.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第7章 图形编程.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第8章 Java Swing与事件处理.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第9章 Applet基础.ppt
- 海南大学:《Java 2实用教程(第3版)》PPT教学课件_第2章 标识符、关键字和数据类型.ppt