《汇编语言程序设计》课程教学资源(PPT课件讲稿)第8章 高级语言汇编技术

汇編语言程序设计 第8章高级语言汇编技术 宏汇编 重复汇编 条件汇编伪指令
汇编语言 程序设计 第8章 高级语言汇编技术 ◆ 宏汇编 ◆ 重复汇编 ◆ 条件汇编伪指令

汇編语言程序设计 8.1宏汇编 在编写汇编语言程序的过程中,有时某个程序 段要出现许多次,有时只是参数不同,但功能完全 羊,则这样的程序段可以定义成一个指令,并且 称它为宏指令。 8.1.1宏定义 若想在汇编语言中使用宏指令,就要定义一个 宏。按照是否使用参数,可以将宏指令分为如下两 种格式。 1.不带参数的宏定义 宏指令名 MACRO 宏体
汇编语言 程序设计 8.1 宏汇编 在编写汇编语言程序的过程中,有时某个程序 段要出现许多次,有时只是参数不同,但功能完全 一样,则这样的程序段可以定义成一个指令,并且 称它为宏指令。 8.1.1 宏定义 若想在汇编语言中使用宏指令,就要定义一个 宏。按照是否使用参数,可以将宏指令分为如下两 种格式。 1. 不带参数的宏定义 宏指令名 MACRO ┇ 宏体 ENDM

汇編语言程序设计 2.带参数的宏定义 宏指令名 MACRO形参1,形参2 宏体 ENDM 例8.2】将两个存储单元数据交换的程序段定义成一个宏指 令 EXCH MEM。 EXCH MEM MACRO MEM 1 MEM 2. REG MOV REG MEM 1 XCHG REG. MEM 2 MOV MEM 1. REG ENDM MEM1.MEM2.REG是形式参数。形参可以是多个,各个形参 之间用逗号相隔。对于带参数的宏定义,宏体中程序段有些部分允 许宏调用时作适当修改。在宏定义中,把允许修改的分用形式参数 (称形参)来表示,当宏调用时就用相应的实参数来取代
汇编语言 程序设计 2.带参数的宏定义: 宏指令名 MACRO 形参1,形参2,… ┇ 宏体 ENDM 【例8.2】将两个存储单元数据交换的程序段定义成一个宏指 令EXCH_MEM。 EXCH_MEM MACRO MEM_1,MEM_2,REG MOV REG,MEM_1 XCHG REG,MEM_2 MOV MEM_1,REG ENDM MEM_1,MEM_2,REG是形式参数,形参可以是多个,各个形参 之间用逗号相隔。对于带参数的宏定义,宏体中程序段有些部分允 许宏调用时作适当修改。在宏定义中,把允许修改的分用形式参数 (简称形参)来表示,当宏调用时就用相应的实参数来取代

汇編语言程序设计 8.1.2宏调用和宏展开 宏调用 在汇编语言中使用已定义过的宏指令,称 为宏调用。按照宏指令定义的格式,宏调用也 可分为两种格式。 (1)无参数宏调用:宏指令名 (2)带参数宏调用:宏指令名实参1,实参2
汇编语言 程序设计 8.1.2 宏调用和宏展开 1. 宏调用 在汇编语言中使用已定义过的宏指令,称 为宏调用。按照宏指令定义的格式,宏调用也 可分为两种格式。 (1) 无参数宏调用:宏指令名 (2) 带参数宏调用:宏指令名 实参1,实参2,…

汇編语言程序设计 2.宏展开 当宏汇编程序扫描到宏指令语旬(即宏调 用)时,宏汇编程序就把宏指令定义中宏体的 程序段代码替代宏指令语句。若是带参数的宏 调用.则同时用相应的实参替代宏体中对应形 参的位置,并对原有宏体代码作修改。 下面是一个源程序的列表文件,它展示了 宏定义、宏调用和宏展开的全部过程。在列表 文件中,左边带“+”号的指令是宏汇编程序 在宏展开时自动生成的指令。宏定义本身不生 成任何目标代码,宏指令语句本身也不生成目 标代码,它仅表示宏调用出现的位置
汇编语言 程序设计 2. 宏展开 当宏汇编程序扫描到宏指令语句(即宏调 用)时,宏汇编程序就把宏指令定义中宏体的 程序段代码替代宏指令语句。若是带参数的宏 调用,则同时用相应的实参替代宏体中对应形 参的位置,并对原有宏体代码作修改。 下面是一个源程序的列表文件,它展示了 宏定义、宏调用和宏展开的全部过程。在列表 文件中,左边带“+”号的指令是宏汇编程序 在宏展开时自动生成的指令。宏定义本身不生 成任何目标代码,宏指令语句本身也不生成目 标代码,它仅表示宏调用出现的位置

汇編语言程序设计 EXCH MEM macro mem 1, MEM 2, REG MOV REG, MEM 1 XCHG REG, MEM 2 MOV mEM 1, REG ENDM DATA SEGMENT DA W1 DW 55AAH DA W2 DW 6688H DATA ENDS CODE SECMENT ASSUME CS: CODE, DS: DatA, SS: STACK START MOV AX, DATA MOV DS, AX ;宏调用和宏展开 EXCH MEM DAW1,DAW2,AX;宏指令语句 +++ Mov AX, Da WI XCHG AX, DA W2 Mov DA W1, REG MOv AH, 4CH INT 21H CODE ENDS END START
汇编语言 程序设计 EXCH_MEM MACRO MEM_l,MEM_2,REG MOV REG,MEM_1 XCHG REG,MEM_2 MOV MEM_1,REG ENDM DATA SEGMENT DA_W1 DW 55AAH DA_W2 DW 6688H DATA ENDS CODE SECMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX ┇ ;宏调用和宏展开 EXCH_MEM DA_W1,DA_W2,AX ;宏指令语句 + MOV AX ,DA_Wl + XCHG AX,DA_W2 + MOV DA_W1,REG ┇ MOV AH,4CH INT 21H CODE ENDS END START

汇編语言程序设计 8.1.3宏调用中的参数使用 为了宏定义和引用的某些特殊需要,有时实参 是由字符、空格等特殊符号组成的,因此汇编程 序支持几个具有特定含义的运算符。 连接远算符& 在宏定义中,如果形式参数与其它字符连接在 起。或形式参数出现在字符串之中,那么,就 必须使用连接运算符(&)。在宏指令定义的具体使 用时,连接操作&可以在形参的前面,也可在形 参的后面。在宏指令展开时,对应形参的实参就 与它前面或后面的符号连接在一起构成一个新的 符号
汇编语言 程序设计 8.1.3 宏调用中的参数使用 为了宏定义和引用的某些特殊需要,有时实参 是由字符、空格等特殊符号组成的,因此汇编程 序支持几个具有特定含义的运算符。 1.连接运算符& 在宏定义中,如果形式参数与其它字符连接在 一起,或形式参数出现在字符串之中,那么,就 必须使用连接运算符(&)。在宏指令定义的具体使 用时,连接操作符&可以在形参的前面,也可在形 参的后面。在宏指令展开时,对应形参的实参就 与它前面或后面的符号连接在一起构成一个新的 符号

汇編语言程序设计 【例8.3】宏指令SHFN功能是:对某一个寄存器选行 由COUN确定的移位次数,由 DIRECT确定逻辑或算术左/右 移位,移位的方向可通过&将S和DRC对应的实参连接起来。 SHIFT N MARCO REG DIRECT. COUNT MOV CL COUNT S&DIRECt REg. ci ENDM 如 SHIFTN B,皿,3的宏指令的展开为: t mov cl. 3 t SHR BX. CL 这样就实现了使B逻辑右移3位。形参DRCT被寥參H 代瞽,通过连接苛&将S和连接成SR。同理 SHIFT N AX H,5可奥现AX逻辑左移5位
汇编语言 程序设计 【例8.3】宏指令SHIFT_N功能是:对某一个寄存器进行 由COUNT确定的移位次数,由DIRECT确定逻辑或算术左/右 移位,移位的方向可通过&将S和DIRECT对应的实参连接起来。 SHIFT_N MARCO REG,DIRECT,COUNT MOV CL,COUNT S&DIRECT REG,CL ENDM 如SHIFT_N BX,HR,3的宏指令的展开为: + MOV CL,3 + SHR BX,CL 这样就实现了使BX逻辑右移3位。形参DIRECT被实参HR 代替,通过连接符&将S和HR连接成SHR。同理SHIFT_N AX, HL,5可实现AX逻辑左移5位

汇編语言程序设计 2.大本操作符〈> NUMBER MACRO THEDATA DB THEDATA ENDM 假设在程序中调用此宏指令 DATA SEGMENT NUMBER,则在宏展开为: t db 1 ;而3,5按规则被忽略
汇编语言 程序设计 2. 文本操作符 文本操作符是一对尖括号<>,用它括起来的内容将作为一个 字符串来进行形式参数的整体替换。在宏引用时,如果实参内包 含逗号、空格等间隔符,则必须使用该操作符,以保证实参的完 整性。如果实参是某个具有特殊含义的字符,为了使它只表示该 字符本身,也需要用该运算符括起来。 NUMBER MACRO THEDATA DB THEDATA ENDM 假设在程序中调用此宏指令: DATA SEGMENT NUMBER DATA ENDS 则宏展开为: DATA SEGMENT + DB 1,3,5 DATA ENDS 如果不加,则在宏展开为: + DB 1 ; 而3,5按规则被忽略

汇編语言程序设计 3.表达式操作等% 选行宏调用时,如要在实參中使用“%”,则在宏指令调用 时宏汇編程序将获取“%”后常数褒达式的值作为参数,而非表 达式本身,如 NUMBER MACRO X Y Z DBⅩYZ ENDM 若宏调用为: EQU 10 EQU 50 NUMBER 16, %I+J, %J-I 则相应的宏展开为: +DB16。60.40
汇编语言 程序设计 3.表达式操作符% 进行宏调用时,如要在实参中使用“%” ,则在宏指令调用 时宏汇编程序将获取“%”后常数表达式的值作为参数,而非表 达式本身,如: NUMBER MACRO X,Y,Z, DB X,Y,Z ENDM 若宏调用为: I EQU 10 J EQU 50 NUMBER 16,%I+J,%J-I 则相应的宏展开为: + DB 16,60,40
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第7章 非数值运算.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第6章 子程序设计及系统调用.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第5章 程序设计基础技术.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第4章 汇编语言与源程序结构.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第3章 指令系统和寻址方式.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第2章 IBM PC计算机系统结构.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第1章 基础知识.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第10章 模块化程序设计.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第三章 运算符与表达式.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)复习.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第九章 循环程序设计.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第八章 选择型程序设计.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二十九章 结构体类型与引用.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二十六章 习题.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第六十七 C程序的流程设计.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二十五章 指针与函数.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二十四章 数组与指针.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二十三章 地址与指针.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第三十三章 共用体类型数据.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二十章 字符串和字符串数组.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第9章 输入/输出程序设计.ppt
- 四川职业技术学院:《数据库基础》模块一 基础知识.ppt
- 四川职业技术学院:《数据库基础》模块二 数据库建立与维护.ppt
- 四川职业技术学院:《数据库基础》模块四 表记录的维护.ppt
- 四川职业技术学院:《数据库基础》模块三 表的建立与维护.ppt
- 四川职业技术学院:《数据库基础》模块六 视图及数据库管理.ppt
- 四川职业技术学院:《数据库基础》模块五 数据查询.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第一章 并行计算机模型(1.1)计算技术的现状(季振洲).ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第一章 并行计算机模型 1.2 多处理机和多计算机 1.3 多向量机和SIMD计算机.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第一章 并行计算机模型(1.4)并行计算机的抽象模型.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第一章 并行计算机模型(1.5)可扩展的范围和设计.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第一章 并行计算机模型(1.5)可扩展的范围和设计.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第二章 并行编程基础(2.1)并行编程综述.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第二章 并行编程基础(2.2)进程任务和线程.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第二章 并行编程基础(2.3)并行性问题.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第二章 并行编程基础(2.4)通信问题.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第三章 性能指标和基准程序(3.1)系统和应用的基准程序.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第三章 性能指标和基准程序(3.2)性能和成本.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第三章 性能指标和基准程序(3.3)基本性能指标.ppt
- 哈尔滨工业大学:《并行处理与体系结构》课程教学资源(PPT课件讲稿)第三章 性能指标和基准程序(3.4)并行计算机性能.ppt