第四章 8086 汇编语言程序设计 几个概念 几个概念 8086 汇编语言的语句 8086 汇编语言的语句 8086 汇编中的伪指令 8086 汇编中的伪指令 8086 汇编中的运算符 8086 汇编中的运算符 汇编语言程序设计 汇编语言程序设计 宏定义与宏调用 宏定义与宏调用 系统调用 系统调用.

Slides:



Advertisements
Similar presentations
第六章 数组与字符串 §6.1 数组 §6.2 字符串. §6.1 数组 数组的创建 ( 一维数组和二维数组;基本数据类型和 复合数据类型) 1. 指定数组名称、数据类型 type var_name[]; 如: char s[]; Object o[]; int i[][];
Advertisements

图样综合表达训练 模块四: 第一节 视图 题目提示返回 1. 画出机件的其余三个基本视图。 第六章 机件的常用图样画法.
首 页 首 页 上一页 下一页 本讲内容 投影法概述三视图形成及其投影规律平面立体三视图、尺寸标注 本讲内容 复习: P25~P31 、 P84~P85 作业: P7, P8, P14[2-32(2) A3 (1:1)]
纺纱学. 2 绪 论 基本要求:了解纺纱系统的类别 重点掌握:棉纺系统的工艺流程 3 一、纺纱原理与设备 纺纱:用物理或机械的方法将纺织纤维纺成纱 线的过程。 纺纱原理:初加工、原料的选配、开松除杂、 混和、梳理、精梳、并合、牵伸、加捻、卷绕等。 纺纱方法:传统纺纱方法、新型纺纱方法。 纺纱设备:开清棉联合机、梳棉机、精梳机、
第十二章 常微分方程 返回. 一、主要内容 基本概念 一阶方程 类 型 1. 直接积分法 2. 可分离变量 3. 齐次方程 4. 可化为齐次 方程 5. 全微分方程 6. 线性方程 类 型 1. 直接积分法 2. 可分离变量 3. 齐次方程 4. 可化为齐次 方程 5. 全微分方程 6. 线性方程.
指令与寻址方式. 一、 instruction Sentence ( 指令语句 ) 按指令的用途划分有: 1. Data Transfer ( 数据传送 ) —— MOV 、 PUSH 、 POP … 2. Arithmetic Operations ( 算术运算 ) —— ADD 、 SUB 、
基本知识和几何要素的投影 模块一: 字体练习 第一章 制图的基本知识与基本技能 题目提示返回.
数控机床结构及维修 主编:于万成 王桂莲 副主编:李昊 人民邮电出版社 北京 ◎ 了解数控系统的组成和常见数控系统 的特点 ◎ 熟悉常见数控系统的参数设置 ◎ 掌握数控系统的常见故障诊断及维修 方法 调试与维修数控 机床的数控系统.
第 12 章位运算 C 语言兼具高级语言及低级语言的特性,因此 适合编写系统软件。 C 语言具备低级语言的特性 就在于它能直接对硬件进行操作,即位运算。 所谓位运算是指,按二进制位进行的运算。 例如,将一个存储单元中各二进位左移或右移一 位等。
第二节 Flash 动态按钮的制作 铁王中学 王东强 学习目标: 1 、了解 ActionScript 在交互动画中的重要作 用 2 、知道 ActionsScript 程序的组成 3 、熟练使用按钮中的 ActionScript 控制动画 播放的操作,掌握按钮的创建和使用方法,
第二章 数据信息 自然语言 字 -  单词 -  句子-  语言 计算机语言 字符-  词法单位-  程序-  语言 ↑ 词法 文法.
4 第四章 矩阵 学时:  18 学时。 教学手段:  讲授和讨论相结合,学生课堂练习,演练习题与辅导答疑相结合。 基本内容和教学目的:  基本内容: 矩阵的运算,可逆矩阵,初等矩阵及其性质和意义, 分块矩阵。  教学目的:  1 .使学生理解和掌握矩阵等价的相关理论  2 .能熟练地进行矩阵的各种运算.
编译程序 构造原理和实现技术 授课教师:吕江花. 第一章 编译程序概述 主要内容: 几个基本概念 编译器的工作过程概述 编译器各个阶段的功能描述 编译程序的实现途径.
嵌入式操作系统 陈香兰 Fall 系统调用 10/27/09 嵌入式 OS 3/12 系统调用的意义  操作系统为用户态进程与硬件设备进行交互提供 了一组接口 —— 系统调用  把用户从底层的硬件编程中解放出来  极大的提高了系统的安全性  使用户程序具有可移植性.
系统调用 Embedded Operating Systems2 系统调用的意义 操作系统为用户态进程与硬件设备进行交互提 供了一组接口 —— 系统调用 把用户从底层的硬件编程中解放出来 极大的提高了系统的安全性 使用户程序具有可移植性.
第 4 章 抽象解释 内容概述 以一种独立于编程语言的方式,介绍抽象解释的 一些本质概念 – 将 “ 程序分析对语言语义是正确的 ” 这个概念公式 化 – 用 “ 加宽和收缩技术 ” 来获得最小不动点的较好的 近似,并使所需计算步数得到限制 – 用 “ 伽罗瓦连接和伽罗瓦插入 ” 来把代价较大的属 性空间用代价较小的属性空间来代替.
第 2 章 数据流分析 内容概述 数据流分析推导的是数据沿着程序执行路 径流动的信息 – 过程内的分析:可用表达式分析、到达-定值分 析等 – 过程间分析 –Shape 分析 – 理论基础 – 数据流方程的求解.
1 为了更好的揭示随机现象的规律性并 利用数学工具描述其规律, 有必要引入随 机变量来描述随机试验的不同结果 例 电话总机某段时间内接到的电话次数, 可用一个变量 X 来描述 例 检测一件产品可能出现的两个结果, 也可以用一个变量来描述 第五章 随机变量及其分布函数.
Harris Spring 2005 讲座一 “ERP 与企业流程再造 ” 东南大学 自控系 赵霁教授 电话: 一 ERP 是什么? 二企业为什么要引入 ERP 系统? 三企业管理软件的发展与 ERP 的创新之处 四 ERP 与流程再造的关系。 五 企业流程再造规划分析。
C 语言程序设计 2008 版. C 语言程序设计 教学要求  掌握程序设计语言的基本知识  常用算法  初步的程序设计能力 学习方法  自主学习  重视上机实践.
南航计算机系 南航计算机系 数据结构. 第一章 绪论  什么是数据结构 什么是数据结构  基本概念和术语 基本概念和术语  抽象数据类型的表示和实现 抽象数据类型的表示和实现  算法和算法分析 算法和算法分析.
第 5 章 分布式文件管理 中国科技大学软件学院 丁箐. 2 主要内容 5.1 分布式文件5.1 分布式文件设计 5.2 分布式文件系统的实现 5.3 分布式文件系统的5.3 分布式文件系统的趋势.
第十一章 曲线回归 第一节 曲线的类型与特点 第二节 曲线方程的配置 第三节 多项式回归.
Lei Zhao, USTC Gzip 编译及调试 Speaker: Lei Zhao ( 赵雷 ) Department of Computer Science & Technology University of Science & T echnology of China September 13,
第三章 C 数据及其表达式 2 回顾  程序是为执行一项任务而编写的有序指令集  算法是解决问题的具体方法和步骤  流程图是算法的图形化表现形式  C 程序的编译和运行过程  编译器将源程序转换成机器能理解的程序  连接器用于连接相关的目标文件以生成可执行程序  进制间的转换  补码.
线性代数习题课 吉林大学 术洪亮 第一讲 行 列 式 前面我们已经学习了关 于行列式的概念和一些基本 理论,其主要内容可概括为:
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第二十五讲 ) 离散数学. 定理 群定义中的条件 ( 1 )和( 2 )可以减弱如下: ( 1 ) ’ G 中有一个元素左壹适合 1 · a=a; ( 2 ) ’ 对于任意 a ,有一个元素左逆 a -1 适 合 a -1 ·
Linux 内核源代码导读 中国科学技术大学计算机系 陈香兰( 0551 - ) Spring 2009.
1 物流信息技术 Logistics Information Technology 中国科学技术大学网络教育学院.
第 4 章 过程与变量的作用范围. 4.1 Visual Basic 的代码模块 Visual Basic 的应用程序是由过程组成的, 过程代码存放在模块中。 Visual Basic 提供了 三类模块,它们是窗体模块、标准模块和类 模块。 窗体模块 窗体模块是大多数 Visual Basic.
数据库与智能网络研究室. © htttp://dbin.jlu.edu.cn 数据库系统原理复习大纲.
实验三: 用双线性变换法设计 IIR 数字滤波器 一、实验目的 1 熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法。 2 掌握数字滤波器的计算机仿真方法。 3 通过观察对实际心电图信号的滤波作用, 获得数字滤波的感性知 识。
语义分析 主要内容:  语义分析概述 ( 必要性、功能、描述方法 )  符号表  类型表达式  声明和程序体的语义分析.
第六章 文件管理. 程序设计中,文件是十分重要的,许多情况下, 使用文件可以高效地解决实际问题。有用的数据在后 备存储器上以文件的形式存储后,我们就可以通过文 件对数据进行访问、操作以及检索,这称为文件管理。 6.1 文件的分类 根据文件访问类型的不同,可以将文件分为三类: 顺序文件、随机文件和二进制文件。
信息利用与学术论文写作 Library of Jiangsu University, Zhenjiang Sha Zhenjiang
操作系统原理课程设计指南 姜海燕 设计考核幻灯制作  1.1 封皮:系统名称,研制人员  1.2 目的及意义  1.3 功能设计:功能框图、用例图  1.4 结构设计:系统结构  1.5 核心技术及技术路线:画图  1.6 进度安排  1.7 人员安排  1.8.
UML 对象设计与编程 主 讲 : 董兰芳 副教授 Dept. of Computer Science,USTC
从 Postscript 格式文献中提取 数学公式的方法. 概述 从 Postscript 格式文献中提取识别数学公式, 是数学公式识别领域的一个研究方向。主要针对 以 Word 和 Latex 为生成源的 Postscript 文档, 提出 基于内容的数学公式提取方法。首先重载 Postscript.
主讲教师:陈殿友 总课时: 124 第十一讲 极限的运算法则. 第一章 二、 极限的四则运算法则 三、 复合函数的极限运算法则 一 、无穷小运算法则 机动 目录 上页 下页 返回 结束 §5 极限运算法则.
在发明中学习 线性代数 概念的引入 李尚志 中国科学技术大学. 随风潜入夜 : 知识的引入 之一、线性方程组的解法 加减消去法  方程的线性组合  原方程组的解是新方程的解 是否有 “ 增根 ” ?  互为线性组合 : 等价变形  初等变换  高斯消去法.
第十章 目标代码生成  目标代码 ( 单寄存器 )  临时变量的存储空间分配  寄存器的分配和释放.
第一节 相图基本知识 1 三元相图的主要特点 (1)是立体图形,主要由曲面构成; (2)可发生四相平衡转变; (3)一、二、三相区为一空间。
第5章 键盘与鼠标接口 5.1 键盘概述 5.2 键盘的工作原理 5.3 PC扩展键盘接口 5.4 键盘中断与键盘I/O 5.5 鼠标接口.
电路设计 —— 《 Protel DXP 电路设计基础教程》讲义 电子系电子实训室 第 9 章 电路仿真: 重点内容: 掌握电路仿真的基本步骤 仿真元器件参数设置 电路仿真方式选择 双稳态振荡器电路仿真实例 共基极运放电路仿真实例.
9的乘法口诀 1 .把口诀说完全。 二八( ) 四六( ) 五八( ) 六八( ) 三七( ) 三八( ) 六七( ) 五七( ) 五六( ) 十六 四十八 四十二 二十四 二十一 三十五 四十 二十四 三十 2 .口算, 并说出用的是哪句口诀。 8×8= 4×6= 7×5= 6×8= 5×8=
第二章 通信技术基础 谈英姿 东南大学自控系工业自动化教研室. 通信技术基础 2.1 通信的基本概念 2.2 通信协议与网络层次分析 2.3 常用串行通信技术.
第二章 处理器管理 南通大学电子信息学院 2010 年 9 月. 第二章 处理器管理 2.1 中央处理器 2.2 中断技术 2.3 进程及其实现 2.4 线程及其实现 2.5 Linux 进程和线程 2.6 Windows 2003 进程和线程 2.7 处理器调度 2.8 作业的管理与调度 2.9.
第 3 章 控制流分析 内容概述 – 定义一个函数式编程语言,变量可以指称函数 – 以 dynamic dispatch problem 为例(作为参数的 函数被调用时,究竟执行的是哪个函数) – 规范该控制流分析问题,定义什么是可接受的控 制流分析 – 定义可接受分析在语义模型上的可靠性 – 讨论分析算法.
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第五十三讲 ) 离散数学. 定义 设 G= ( V , T , S , P ) 是一个语法结构,由 G 产生的语言 (或者说 G 的语言)是由初始状态 S 演绎出来的所有终止符的集合, 记为 L ( G ) ={w  T *
编译原理总结. 基本概念  编译器 、解释器  编译过程 、各过程的功能  编译器在程序执行过程中的作用  编译器的实现途径.
 符号表  标识符的作用: 声明部分:定义了各种对象及对应的属性和 使用规则。 程序体:对所定义的对象进行各种操作。 $ididname IdnameAttributeIR  必要性 Token : 新表-符号表(种类、类型等信息):
Department of Mathematics 第二章 解析函数 第一节 解析函数的概念 与 C-R 条件 第二节 初等解析函数 第三节 初等多值函数.
网上预约集港操作指南 一、登录系统 登陆下面图片显示网址:输入堆场用户名、密码和校验码登陆系统.
《 UML 分析与设计》 交互概述图 授课人:唐一韬. 知 识 图 谱知 识 图 谱知 识 图 谱知 识 图 谱.
Introduction to Automatic Control The Laplace Transform Li Huifeng Tel:
LOGO s 数控机床故障诊断与维修. 子项目 8 掌握 M 、 T 代码的工作原理并进行控制 冷却、转速、刀库等 。 任务 8.3 编制斗笠式刀库换刀 PLC 程序,排除故障.
1 、如果 x + 5 > 4 ,那么两边都 可得 x >- 1 2 、在- 3y >- 4 的两边都乘以 7 可得 3 、在不等式 — x≤5 的两边都乘以- 1 可得 4 、将- 7x — 6 < 8 移项可得 。 5 、将 5 + a >- 2 a 移项可得 。 6 、将- 8x < 0.
项目七: PLC 功能指令应用 带进位循环左移指令 XXXXX. 项目七: PLC 功能指令应用 FX2 系列可编程控制器移位控制指令有移位、循环移位、字移位 及先进先出 FIFO 指令等 10 条指令。 带进位循环右移指令 RCR 带进位循环左移指令 RCL 字右移位指令 WSFR 先入先出读出指令.
第四章 计算机数控( CNC )系统  本章重点:  1 计算机数控系统构成及其结构特点  2 运动轨迹插补原理  3 刀具补偿.
§10.2 对偶空间 一、对偶空间与对偶基 二、对偶空间的有关结果 三、例题讲析.
企业产品标准信息公共服务平台 操作介绍 目录 一 、系统架构介绍 二 、企业产品标准自我声明填报系统 三 、企业产品标准公示系统.
表单自定义 “ 表单自定义 ” 功能是用于制作表单的 工具,用数飞 OA 提供的表单自定义 功能能够快速制作出内容丰富、格 式规范、美观的表单。
力的合成 力的合成 一、力的合成 二、力的平行四边形 上一页下一页 目 录 退 出. 一、力的合成 O. O. 1. 合力与分力 我们常常用 一个力来代替几个力。如果这个 力单独作用在物体上的效果与原 来几个力共同作用在物体上的效 果完全一样,那么,这一个力就 叫做那几个力的合力,而那几个 力就是这个力的分力。
逻辑设计基础 1 第 7 章 多级与(或)非门电路 逻辑设计基础 多级门电路.
八. 真核生物的转录 ㈠ 特点 ① 转录单元为单顺反子( single cistron ),每 个蛋白质基因都有自身的启动子,从而造成在功能 上相关而又独立的基因之间具有更复杂的调控系统。 ② RNA 聚合酶的高度分工,由 3 种不同的酶催化转 录不同的 RNA 。 ③ 需要基本转录因子与转录调控因子的参与,这.
一、 版 面 构 成 的 概 念 版 面 构 成 的 概 念 二、 版 面 构 成 的 发 展 趋 势 版 面 构 成 的 发 展 趋 势 三、 广 告 文 字 的 版 面 构 成 广 告 文 字 的 版 面 构 成 四、 广 告 版 面 的 视 觉 流 程 广 告 版 面 的 视 觉 流 程.
U niversity of S cience and T echnology of C hina VxWorks 及其应用开发 陈香兰 年 7 月.
1 第三章 数列 数列的概念 考点 搜索 ●数列的概念 ●数列通项公式的求解方法 ●用函数的观点理解数列 高考 猜想 以递推数列、新情境下的 数列为载体, 重点考查数列的通 项及性质, 是近年来高考的热点, 也是考题难点之所在.
1 文件的查找. 2 回收站的管理 3 磁盘管理 格式化软盘 复制文件到软盘 整理磁盘碎片 4 格式化软盘.
SCI 数据库检索练习参考 本练习完全依照 SCI 数据库实际检索过程而 实现。 本练习完全依照 SCI 数据库实际检索过程而 实现。 练习中,选择了可以举一反三的题目,读 者可以根据题目进行另外的检索练习,如: 可将 “ 与 ” 运算检索改为 “ 或 ” 、 “ 非 ” 运算检索 等等。 练习中,选择了可以举一反三的题目,读.
Presentation transcript:

第四章 8086 汇编语言程序设计 几个概念 几个概念 8086 汇编语言的语句 8086 汇编语言的语句 8086 汇编中的伪指令 8086 汇编中的伪指令 8086 汇编中的运算符 8086 汇编中的运算符 汇编语言程序设计 汇编语言程序设计 宏定义与宏调用 宏定义与宏调用 系统调用 系统调用

几个概念 汇编语言 汇编语言 汇编语言源程序 汇编语言源程序 汇编 汇编 汇编程序 汇编程序

4 . 汇编语言的语句 汇编语言由指令性语句和指令性语句组成 一、指令性语句格式 一、指令性语句格式 [ 标号: ] 操作码 [ 操作数 1 , ] [ 操作数 2] ; [ 注释 ] [ 标号: ] 操作码 [ 操作数 1 , ] [ 操作数 2] ; [ 注释 ] 二、指示性语句格式 二、指示性语句格式 [ 标识符(名字) ] 指示符(伪指令) 表达式 三、有关属性 三、有关属性 存储器操作数的属性有三种:段值、段内偏移量 和类型。 存储器操作数的属性有三种:段值、段内偏移量 和类型。

4 . 汇编中的伪指令 一、 符号定义语句 一、 符号定义语句  1 、等值语句 格式:符号名 EQU 表达式 例: ⑴ PORT EQU 1234 ⑵ BUFF EQU PORT + 58 ⑵ BUFF EQU PORT + 58 ⑶ MEM EQU DS:[BP + 20H] ⑶ MEM EQU DS:[BP + 20H] ⑷ COUNT EQU CX ⑸ ABC EQU AAA ⑸ ABC EQU AAA

2 、等号语句 格式: NUM = 34 …… …… NUM = 34 + 1 NUM = 34 + 1

二、变量定义语句 二、变量定义语句 格式: 符号名 DB/DW/DD 表达式

 1 、定义一组数据 例 1 : BUFF DW 1234H, 0ABCDH, 8EH DW –79DH, 7B6AH DW –79DH, 7B6AH  2 、定义一串字符 例 2 : STR DB ‘ Welcome !’  3 、定义保留存储单元 例 3 : SUM DW ?,?

 4 、复制操作 复制操作符 DUP ( Duplication )可预置重复的数值 例 4 : ALL_ZERO DB 0 , 0 , 0 , 0 , 0 用复制操作可改为: ALL_ZERO DB 5 DUP ( 0 )  5 、 将已定义的地址存入内存单元 例 5 : LIT DD CYC … CYC: MOV AX, BX

三、段定义语句 三、段定义语句  1 、 段定义语句格式: 段名 SEGMENT [ 定位类型 ] [ 组合类型 ] [‘ 类别 ’] 段名 SEGMENT [ 定位类型 ] [ 组合类型 ] [‘ 类别 ’] …… …… 段名 ENDS 段名 ENDS只需要掌握 段名 SEGMENT 段名 SEGMENT …… …… 段名 ENDS 段名 ENDS

 2 、段假设语句 ASSUME 段寄存器名:段名 [,…]  3 、 ORG 伪指令、地址计数器 $ ORG 伪指令格式: ORG ORG 伪指令格式: ORG  4 、 END 表示源代码结束 格式为: END 常数或表达式. 格式为: END 常数或表达式.

四、过程定义语句 四、过程定义语句 过程名 PROC NEAR/FAR 过程名 PROC NEAR/FAR …… …… RET RET 过程名 ENDP 过程名 ENDP

4 . 汇编中的运算符 一、常用运算符 1 、算术运算符 +(加)、-(减)、 * (乘)、 / (除)、 MOD (求余)。 +(加)、-(减)、 * (乘)、 / (除)、 MOD (求余)。 2 、逻辑运算符 AND 、 OR 、 XOR 、 NOT AND 、 OR 、 XOR 、 NOT

3 、关系运算符 EQ (相等)、 NE (不等、) EQ (相等)、 NE (不等、) LT (小于)、 GT (大于)、 LT (小于)、 GT (大于)、 LE (小于等于)、 GE (大于等于)。 LE (小于等于)、 GE (大于等于)。 关系成立,全 1 关系成立,全 1 关系不成立,全 0 例: MOV DL, 10H LT 16 例: MOV DL, 10H LT 16 例: AND AX, 555 GT 222 例: AND AX, 555 GT 222

二、 常用的操作符 二、 常用的操作符 4 、分析操作符 1 ) SEG 操作符 例: MOV AX, SEG BUFF 2 ) OFFSET 操作符 例: MOV BX, OFFSET BUFF 例: MOV BX, OFFSET BUFF

3 ) TYPE 操作符 对于变量有 3 种: 1 字节型; 对于变量有 3 种: 1 字节型; 2 字型; 2 字型; 4 双字型 ; 4 双字型 ; 对于标号有 2 种:- 1 NEAR (段内), 对于标号有 2 种:- 1 NEAR (段内), - 2 FAR (段间)。 - 2 FAR (段间)。 例: BUFF DB 20H MOV BX,TYPE BUFF  MOV BX,TYPE BUFF  MOV BX,01 MOV BX,01

4 ) LENGTH 操作符 5 ) SIZE 操作符 SIZE = TYPE×LENGTH SIZE = TYPE×LENGTH 例: BUFF DB 10DIP(?) MOV CX,LENGTH BUF MOV CX,LENGTH BUF  MOV CX,10  MOV CX,10 MOV CX,SIZE BUF MOV CX,SIZE BUF  MOV CX,20  MOV CX,20

5 、综合运算符(合成操作符) 功能: 1 、由已有的操作数建立新的操作数; 2 、新操作数和已有的操作数类型不一样 1 ) PTR 运算符 格式: 类型 PTR 表达式 例: INC WORD PTR [BX] wxdw 1234h mov al, byte ptr wx mov ah, byte ptr wx+1 2 ) THIS 操作符 格式: THIS 类型 ( 或属性 ) 例: FIRST EQU THIS BYTE SECOND DW 100 DUP ( ? ) SECOND DW 100 DUP ( ? )

4 . 4 汇编语言程序设计 常用的汇编语言程序框架: DATA SEGMENT ;定义数据段 DATA SEGMENT ;定义数据段 VAL1 DB 12H, 8EH ;定义变量 …… …… DATA ENDS ;数据段结束 DATA ENDS ;数据段结束 CODE SEGMENT ;定义代码段 CODE SEGMENT ;定义代码段 ASSUME DS:DATA, CS: CODE ;段属性说明 ASSUME DS:DATA, CS: CODE ;段属性说明 START: MOV AX, DATA ;初始化 DS START: MOV AX, DATA ;初始化 DS MOV DS, AX MOV DS, AX …… …… MOV AX, 4C00H ;返回 DOS MOV AX, 4C00H ;返回 DOS INT 21H INT 21H CODE ENDS ;代码段结束 CODE ENDS ;代码段结束 END START ;源程序结束 END START ;源程序结束

特点 特点  程序分段  语句由指令性和指示性语句组成  两种程序框架

一、汇编语言程序设计基本步骤 1. 分析问题,确定模型  2. 确定算法  3. 绘制流程图  4. 编写程序  5. 检查和调试 二、汇编语言程序的基本结构

1 、顺序结构

举例 完成 完成 x1*x2  x3 x1:byte x2:word x3 34bit

2 、分支结构 2 、分支结构

举例 实现 实现

用查表法确定分支 用查表法确定分支 a 、对 8 种产品进行编号 0 , 1 , ……7 b 、每一个编号对应一个入口地址 b 、每一个编号对应一个入口地址 proc0 , proc1 , ……proc7 proc0 , proc1 , ……proc7 步骤: 步骤: a 、把入口地址放在 Table 开始的内存单元; a 、把入口地址放在 Table 开始的内存单元; b 、根据 key 内容进行查表实现分支转移 b 、根据 key 内容进行查表实现分支转移

3 、循环结构

举例 例 1 、计算 y = 0 + 2 + 4 + …… + 1998 例 1 、计算 y = 0 + 2 + 4 + …… + 1998 y  dxax y  dxax 查找数组中是否由关键字, 查找数组中是否由关键字, 有:变量 dd1 = 1 ; dd2 :关键字偏移量 无:变量 dd1 = 0 无:变量 dd1 = 0  方法一、用 loopnz ( loopne )指令  方法二、用 loop 指令

Call proc1 ret

实现方法 实现方法  主程序有调用指令 call  子程序有返回指令 ret 特点 特点  Call 指令与 ret 缺一不可  现场保护  入口出口参数设置

举例 举例 编写 AX*10  AX 子程序

子程序编写 子程序编写  1 、子程序组成  使用说明 a 、子程序功能a 、子程序功能 b 、使用寄存器情况b 、使用寄存器情况 c 、入口出口参数c 、入口出口参数  程序体 入口出口参数传递 入口出口参数传递 现场保护 现场保护 功能程序段 功能程序段

 2 、现场保护和入口出口参数传递  ( 1 )、现场保护 方案一:在子程序中保护 方案一:在子程序中保护 方案二:在主程序中保护 方案二:在主程序中保护  ( 2 )、参数传递 寄存器传递 寄存器传递 变量传递 变量传递 堆栈传递 堆栈传递

举例 举例  1 、数组元素求和  2 、计算 N !

4.4 系统调用 一、 PCDOS 执行流程 一、 PCDOS 执行流程

键盘命令 命令处理程序 文件管理 基本输入 / 输出 BIOS 用户程序 ROM IBMBIO IBMDOS

BIOS IBMBIO IBMDOS

二、 DOS 系统子程序功能 二、 DOS 系统子程序功能  1 、磁盘管理  2 、内存管理  3 、系统输入 / 输出 共 87 个子程序

三、系统功能调用 三、系统功能调用 对 87 个子程序进行编号,根据编号进行 相关处理 格式 1 、入口参数 2 、编号  ah 3 、 INT 21H

编号  ah INT 21 ah=1 1 号调用 ah=2 2 号调用

常用的系统调用 常用的系统调用  1 、 1 号调用-键盘输入  2 、 8 号调用  3 、 5 号调用-打印  4 、 6 号调用-显示及输入  5 、 9 号调用-输出字符  6 、 10 号调用-输入字符串

4.5 宏定义与宏调用 一、宏定义和宏调用 一、宏定义和宏调用  1 、格式 宏指令名 macro [ 参数表 ] 宏指令名 macro [ 参数表 ] …; 宏定义体 endm  2 、优点  缩短源程序长度,但不减少代码长度;  程序易读

 3 、参数可以是多种形式 二、宏定义取消伪操作 二、宏定义取消伪操作格式 purge 宏命令名 1 ,宏命令名 2 , … 三、重复伪操作 三、重复伪操作格式 rept rept ;重复块endm

四、不定重复伪操作 四、不定重复伪操作格式 irp 形参, irp 形参, ;重复块endm 五、串重复伪操作 五、串重复伪操作格式 irpc 形参, irpc 形参, ;重复块endm

条件汇编 条件汇编格式 if 表达式 …else…endif

常用的汇编程序举例 1 、找数组中的最大值 1 、找数组中的最大值 2 、中值滤波 2 、中值滤波 3 、把一字节十六进制数转换为 ASCII 码 3 、把一字节十六进制数转换为 ASCII 码 4 、排序 4 、排序 5 、乘法 5 、乘法 6 、除法 6 、除法 7 、二进制到十进制 7 、二进制到十进制 8 、十进制到二进制 8 、十进制到二进制

编写子程序 bcddiv10 ,把 dx 中的四位 bcd 码除 10 ,并四舍五入。 编写子程序 bcddiv10 ,把 dx 中的四位 bcd 码除 10 ,并四舍五入。