第5章 循环子程序结构程序设计

[题目]:建立学生名次表。 [要求 ]:以 grade为首地址的 10个字的数组中保存了学 生成绩,其中 grade+I 保存学号为 I+1 的学生的成绩。 要求建立一个10个字的rank数组,并根据grade中的 学生成绩将学生名次填入 rank数组中。其中 rank+I 的内容是学号为I+1的学生的名次。
图示
例:将首地址为 a 的字数组从大到小排序 (起泡排序算法,多重循环)
100 30 78 99 15 -1 66 45 189 256 100 78 99 30 15 66 45 189 256 -1 100 99 78 30 66 45 189 256 15 -1 100 99 78 66 45 189 256 30 15 -1 100 99 78 66 189 256 45 30 15 -1 100 99 78 189 256 66 45 30 15 -1 100 99 189 256 78 66 45 30 15 -1 100 189 256 99 78 66 45 30 15 -1 189 256 100 99 78 66 45 30 15 -1 256 189 100 99 78 66 45 30 15 -1
的最大值和最小值
分别,1000H MOV DS,AX MOV SI,0050H MOV CX,19 CLC MOV AX,[SI] MOV BX,AX AA:ADD SI,2 CMP BX,[SI] JLE BB BX≤[SI] MOV BX,[SI] JMP SHORT NEXT
条件控制循环
条件控制循环需要利用特定条件判断循环是否结 束. 条件控制循环用条件转移指令判断循环条件.
转移指令可以指定目的标号来改变程序的运行顺
序,如果目的标号指向一个重复执行的语句体的
开始或结束,便构成了循环控制结构.
例 显示以0结尾的字符串
string ;数据段 db 'Let us have a try !',0 ;代码段 mov bx,offset string mov dl,[bx] 条件控制循环 cmp dl,0 先判断后循环 jz done ;为0结束 mov ah,2 ;不为0,显示 int 21h inc bx ;指向下一个字符 jmp again ……
外循环开始 中循环开始 内循环开始 内循环结束
中循环结束 外循环结束
一、循环程序的结构形式:
循环结构主要由三部分组成,它们是: 1. 循环体:重复运行的部分,其中还包含了工作
部分和循环控制部分。工作部分进行相应的操作,
而循环控制部分则保证在不满足循环条件时,跳出
循环。
2. 循环结束条件:在循环体中包括了循环结束条件 运算部分。每循环一次除了工作部分进行相应的操作 外,循环条件部分还要通过运算,得出当前循环的状 态,以便在适当的条件下结束循环。 3. 循环初值(初始化):用于设臵开始循环时,循环
data SEGMENT RESULT DW ? data ENDS code SEGMENT ASSUME CS:code,DS:data START: MOV AX,data MOV DS,AX
例:把 BX 中的二进制数以十六进制的形式 显示在屏幕上。
BX
1
2 3
4
…… mov ch, 4 rotate: mov cl, 4 rol bx, cl mov al, bl and al, 0fh add al, 30h ; ’0’~’9’ ASCII 30H~39H cmp al, 3ah jl printit add al, 7h ; ’A’~’F’ ASCII 41H~46H printit: mov dl, al mov ah, 2 int 21h dec ch jnz rotate ……
第 5章
循环结构程序设计
教学内容
★循环程序的基本结构 ★循环程序的设计实例
5.1 循环程序的基本结构
●循环程序设计
对于程序中多次、有
规律执行的部分,我们通
常使用循环结构重复运行 这些部分,使程序有较高 的运行效率和可读性。循 环程序允许嵌套 , 其嵌套 深度原则上不受限制 , 但 不允许交叉。如右图
PUSHF ADD SI,2
ADD DI,2
ADD BX,2 POPF LOOP AA
HLT
DEC CX JNZ AA
例:从10050H开
首地址 循环次数 CF←0
开始 初始化
始,存放有20个字
数据组,找出其中
取第一个数→AX和BX 数组中的数与(AX) 和(BX)比较 大数→AX 小数→BX N 比较完? Y 结束









●特点:
1、每次冒出一个最小数。
2、最多(N-1)步;(外循环)
在每步中,第一步需( N-1 )次比较,以后逐步减
少。(内循环)
计数控制双重循环
a
dw
100,30,78,99,15,-1,66,45,189,256 …… mov dec mov mov mov cmp jge xchg mov
初始化 循环的初始状态
循环体
修改部分 Y 循环的工作部分 及修改部分
控制条件
计数控制循环 条件控制循环
N
结束
5.2 循环结构程序的设计方法
循环程序设计方法
常用的循环程序的设计方法有计数法、寄存器终值法、
条件控制法、开关控制法和逻辑控制法等。
计数法适用于循环次数固定的情况,有正计数和倒计数
两种。寄存器终值法中控制寄存器初值或终值,不是循环次
多重循环程序设计
在一个循环程序中循环体内还包含一个或多个
循环结构,称为多重循环程序。其设计方法与单循
环程序是一致的。 ●注意: A、分清各重循环的控制条件及其程序实现,相互之 间不能混淆。 B、从外循环再次进入内循环时,初始条件必须重新 设臵。
冒泡法
“冒泡法”是一种排序算法,不是最优的算法,但 它易于理解和实现 冒泡法从第一个元素开始,依次对相邻的两个元 素进行比较,使前一个元素不大于后一个元素; 将所有元素比较完之后,最大的元素排到了最后; 然后,除掉最后一个元素之外的元素依上述方法 再进行比较,得到次大的元素排在后面;如此重 复,直至完成就实现元素从小到大的排序 这需要一个双重循环程序结构
子程序设计
子程序的调用与返回
保存与恢复寄存器
子程序的参数传送
子程序的嵌套与递归
中断的相关概念
1 子程序的基本概念
若在一个程序中或多个程序
中多处用到同一个程序段(这些 程序段的功能、结构相同,只是 某些变量赋值不同),那么就可 以把这段程序单独存放,每当需 要执行这段程序时,就可以调用 该程序段,执行完后再返回原来 的程序去继续执行。
loop1:
loop2:
cx, 10 cx di, cx bx, 0 ax, a[bx] ax, a[bx+2] continue ax, a[bx+2] a[bx], ax
continue:
add loop mov loop ……
bx, 2 loop2 cx, di loop1
实验四 循环程序设计
可以简化源程序结构;
提高程序的可读性与可维护性; 有利于代码复用;
提高程序的设计效率。
●调用子程序的程序称为主程序或调用程序。 ◆主程序向子程序转移的过程叫子程序调用或 过程调用。(转子)CALL ◆子程序执行后返回主程序的过程称为子程序 返回或过程返回。(返主)RET ●子程序是模块化程序设计的重要组成部分。
初始化:循环次数=元素个数-1 循环体:逐个比较求最大、小值 循环控制:比较完所有数据
BB:CMP AX,[SI]
AX≥[SI]
JGE NEXT MOV AX,[SI]
NEXT:LOOP AA
HLT
例:编程计算1+2+3+…+50的和,结果送 RESULT单元 MOV AX,1 MOV RESULT,0 MOV CX,50 CLC NEXT: ADC RESULT,AX INC AX LOOP NEXT MOV AH,4CH INT 21H code ENDS END START
[提示]:
1、一个学生的名次等于成绩高于该学生的人数加1。
2、采用两重循环结构实现。 3 、由于使用的寄存器较多,现将寄存器的分配情况 说明如下:(供参考) AX—存放当前被测学生的成绩; BX—存放当前被测学生的相对地址指针。 CX—内循环计数值; DX—当前被测学生的名次计数值; SI— 内循环测试时的地址指针; DI— 外循环计数值;
数,每执行一次循环体,该寄存器的值按某种规律进行处理, 直到该寄存器的值达到条件退出循环,一般用于循环次数不 固定的程序。条件控制法是在循环次数未知的情况下,对控 制条件比较,若满足要求则退出循环,否则继续循环。
计数控制循环
计数控制循环利用循环次数作为控制条件
易于采用循环指令LOOP和JCXZ实现

“先循环、后判断”结构
循环结束的控制可以用循环次数,还可以用特定 条件等,于是又有:

计数控制循环 条件控制循环
初始化
用于循环次 数不固定
初始化
控制条件
Y
N
循环体
N
循环体
控制条件
Y
用于循环 次数固定
DO-WHILE 结构 “先判断,后执行”
DO-UNTIL 结构 “先执行,后判断”
先循环后判断的循环结构
again:
done:
例:编程统计BUF字单元中含1的个数,并将结果存入COUNT字 节单元中。 MOV AX,BUF
DATA BUF COUNT DATA STACK SEGMENT DW 2345H DB 0 ENDS SEGMENT STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV CL,0 COPA: AND AX,AX JE EXIT SHL AX,1 JNC COPA INC CL JMP COPA EXIT: MOV COUNT,CL MOV AH,4CH INT 21H CODE ENDS END START
合集下载

第5章4 子程序设计

第5章4 子程序设计
X,1000H GOON: INC AX LOOP GOON RET DELAY ENDP Code ends end start
由于主程序和子程序具有相互独立性,而CPU 中的寄存器是公用的,所以它们在使用寄存器时会 发生冲突,即:如果主程序在调用子程序之前的某 一寄存器中的内容在从子程序返回后还有用,而子 程序又恰好使用了此寄存器,这样就会破坏寄存器 中原有的内容,从而造成在返回主程序时程序因数 据的丢失而出现错误。
在设计一个子程序之前,首先应该明确: 子程序的名字; 子程序的功能; 入口参数:为了运行这个子程序,主程序为它准备了哪几个 “已知条件”?这些参数存放在什么地方? 出口参数:这个子程序的运行结果有哪些?存放在什么地方? 影响寄存器:执行这个子程序会改变哪几个寄存器的值? 其它需要说明的事项。
BX,OFFSET X SI, OFFSET ROOT
;初始化指针
MOV
ONE: MOV
CX, 5
AX, [BX]
;设置计数器初值
;设置入口参数 ;调用子程序
CALL SQUARE
MOV
ADD INC
[SI], AL
BX, 2 SI
;保存返回参数(平方根)
;修改指针 ;修改指针
LOOP ONE
JMP $ CODE ENDS
• • • • • • • • • • • • • • • • • •
change proc cmp ah,90 jb m1 mov al,'A' jmp exit m1: cmp ah,80 jb m2 mov al,'B' jmp exit m2: cmp ah,60 jb m3 mov al,'C' jmp exit m3: mov al,'D' exit: ret change endp code ends end start

第5章 S7-200系列PLC的基本指令及程序设计-2

第5章  S7-200系列PLC的基本指令及程序设计-2

●计数器的当前值≠0时,其状态位为0;而它 的当前值=0时,状态位置 1,且停止计数。 ●当装载输入端 LD=1时,减计数器复位:
当前值=设定值,状态位=0。
计数器的应用 举例--计数范围的扩展
【例5-4-1】: 做一个计数器,当计数到200000时, 使Q0.0 = 1。 控制程序如下:
2
手动复位 初始化
●跳转/标号指令必须成对使用,且只能用在同一程 序块中。 ●跳转/标号指令中, n 的范围: 0~255。 ●执行跳转指令后,跳过程序段中各个元件(除定 时器外)的状态不变,保持跳转前的状态。
●跳过程序段中若有定时器:
a.1ms、10ms的定时器,系统会对它们周期 刷新,故会继续计时. b. 对于100ms的定时器,只有执行指令时其 当前值和状态位才会被刷新,因此跳过程序 段中的定时器指令因不执行而停止刷新,会 使定时器计时失准.
跳转、标号指令应用
【例5-3-5】
有一个机械手, 用工作方式开关
选择手动、单步
、自动工作方式
,主程序如下:
6. 子程序
● 在结构化程序设计时,采用子程序可以
优化程序结构,减少扫描时间;
● 与子程序相关的操作有: ※ ※ ※ 建立子程序 子程序调用 子程序返回
1)创建子程序
用命令“编辑” 程序” “插入” “子
第五章 S7-200PLC 基本指令及程序设计-2
河南延龙机电设备有限公司
§5-3 PLC的梯形图程序设计方法
1. 梯形图程序设计的方法 梯形图程序的基本 形式:
X开:开启条件 X关:关断条件 Fk 的自锁触点。
Fk
尽可能是短信号.
线圈Fk: 逻辑运算的中间(或最终)结果;
1)梯形图程序的设计方法:

《汇编语言程序设计》(第四版)教案及答案解析

《汇编语言程序设计》(第四版)教案及答案解析

《汇编语言程序设计》教案附:习题参考答案《汇编语言程序设计》(第4版)钱晓捷主编前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。

它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。

3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。

(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。

(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。

(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。

(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。

(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。

(7).第九章说明BIOS和DOS系统功能调用的使用方法。

(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。

附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (1)1.1进位计数制与不同基数的数之间的转换 (1)1.2二进制数和十六进制数的运算 (2)1.3计算机中数和字符的表示 (3)1.4几种基本的逻辑运算 (3)第 2 章 80X86计算机组织 (4)2.180X86微处理器 (4)2.2基于微处理器的计算机系统构成 (4)2.3中央处理机 (5)2.4存储器 (6)2.5外部设备 (7)第 3 章 80X86的指令系统和寻址方式 (8)3.180X86的寻址方式 (8)3.2程序占有的空间和执行时间 (10)3.380X86的指令系统 (10)第 4 章汇编语言程序格式 (27)4.1汇编程序功能 (27)4.2伪操作 (27)4.3汇编语言程序格式 (31)4.4汇编语言程序的上机过程 (34)第 5 章循环与分支程序设计 (37)5.1循环程序设计 (37)5.2分支程序设计 (38)5.3如何在实模式下发挥80386及其后继机型的优势 (38)第 6 章子程序结构 (40)6.1子程序的设计方法 (40)6.2子程序的嵌套 (41)6.3子程序举例 (41)第 7 章高级汇编语言技术 (43)7.1宏汇编 (43)7.2重复汇编 (44)7.3条件汇编 (45)第 8 章输入/输出程序设计 (46)8.1I/O设备的数据传送方式 (46)8.2程序直接控制I/O方式 (47)8.3中断传送方式 (47)第 9 章 BIOS和DOS中断 (50)9.1键盘I/O (50)9.2显示器I/O (52)9.3打印机I/O (53)9.4串行通信口I/O (54)第 10 章图形与发声系统的程序设计 (55)10.1显示方式 (55)10.2视频显示存储器 (55)10.3EGA/VGA图形程序设计 (56)10.4通用发声程序 (57)10.5乐曲程序 (58)第 11 章磁盘文件存取技术 (59)11.1磁盘的记录方式 (59)11.2文件代号式磁盘存取 (60)11.3字符设备的文件代号式I/O (61)11.4BIOS磁盘存取功能 (62)附录:《IBM—PC汇编语言程序设计》习题参考答案 (63)第一章.习题 (63)第二章.习题 (64)第三章.习题 (65)第四章.习题 (79)第五章.习题 (84)第六章.习题 (104)第七章.习题 (118)第八章.习题 (125)第九章.习题 (130)第十章.习题 (134)第十一章.习题 (145)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。

微机原理第五章 程序设计-dsh

微机原理第五章 程序设计-dsh

INT
COSEG
21H
ENDS END START
第三节 分支程序
计算机可根据不同条件进行逻辑判断,从而选择不同 的程序流向。程序的流向是由 CS和 IP决定的,当程序 的转移仅在同一段内进行时,只需修改偏移地址 IP的 值;如果程序的转移是在不同的段之间进行,则段基 址 CS和偏移地址 IP均需要修改。 转移指令分为无条件转移指令和条件转移指令。 在进行分支程序设计时,首先要根据处理的问题用比 较、测试的方式,或者用算术运算、逻辑运算使标志 寄存器产生相应的标志位,根据转移条件选择转移指 令。
INC INC DEC JNZ
BX BX CX LOP ; ;控制部分
修改部分
MOV YY,AX MOV AH,4CH INT CODE ENDS 21H
END
START
一.循环的基本结构
1.先执行,后判断结构
流程图如右:
入口
初始化部分
循环体
修改部分
N
循环 结束? Y 出口
例2. 编程统计数据块中正数的个数,
Y
RS END (DX)
DATA
SEGMENT
D1
COUNT RS DATA CODE
DB,-1,-3,5,7,-9,·,-6 · ·
EQU DW ENDS SEGMENT ASSUME CS:CODE,DS:DATA $-D1 ?
START:
MOV
AX,DATA
MOV
MOV MOV MOV
DS,AX
JMP JUS2
BIGD: JG JUS1 ;x>0转移 ;x=0
MOV AL, 0
JMP
JUS1: JUS2:
JUS2

VF 第5章 结构化程序设计

VF 第5章 结构化程序设计

5.4 程序设计的三种基本结构
按照结构化程序设计的观点,任何 算法都可通过三种基本程序结构的组 合来完成。这三种基本程序结构分别 是:顺序结构、分支结构和循环结构。 5.4.1 结构化程序设计概述 5.4.2 选择结构 5.4.3 循环结构
5.4.1 结构化程序设计概述
结构化程序设计的提出 为了便于阅读和修改程序 方法:严格按照三种基本程序结构编写程序 程序模块化,尽量减少各模块间关联 自顶向下逐步求精:整体->部分->更小部分 程序的三种基本结构 顺序结构 选择结构 循环结构
5.1.2 程序文件的基本组成
程序一般由以下要素组成:
变量:保存中间结果,参与运算。
普通语句:操作数据库的命令、输入输出
等。 程序流程语句:控制程序方向,如跳转、 选择等。 过程与函数:完成特定功能的子程序块
5.2 算法与流程图
算法是程序设计的重要环节,算法的 好坏直接影响到程序运行的效率和开销。 利用流程图描述算法是一种常用方法, 它可以使算法的描述直观形象,便于理 解。
5.2.3 算法的流程图描述(1)
在程序设计中,更经常是用流程图来 描述算法。用一些简单的几何框图表示 各种类型的操作,然后用带箭头的有向 流线将各个框图连结起来,以表示其执 行的先后顺序,这种框图称为“流程 图”。用流程图描述算法,直观形象, 易于理解。
5.2.3 算法的流程图描述(2)
最常用的流程图符号如下所示。 起止框:表示程序的开始和结束。
3.输入单字符语句: WAIT(2)
②WAIT语句只接收单个字符。若含有[TO <内存变量名>],则把该字符送内存变量, 内存变量是字符型的。 ③WAIT 语句的特点在于响应速度快,它常 用于程序中控制屏幕显示的暂停,使用户看 清屏幕上的内容之后,再按任一键让程序继 续执行。 例如:WAIT "请看清结果后按任一意键, 程序将继续运行"

C语言程序设计课程总结

C语言程序设计课程总结

本课程总结姚琳主编(第二版)第一章C语言程序设计概述目的:初步了解C语言程序,学会使用C语言环境编辑运行C程序。

要求:掌握程序设计语言、程序、算法的概念,了解算法的特点,熟悉算法的设计步骤,掌握用流程图表达算法的方法。

了解C语言程序的结构特点,掌握在Turbo C集成环境下编辑、运行简单C语言程序的方法。

教学重点:C语言程序的结构特点;在VC集成环境下运行C程序教学难点:算法设计和算法描述。

一.算法:算法:就是解决问题的方法。

计算机算法可分为两类别:数值运算算法—求数值解,用在科学计算。

非数值运算算法—求非数值解,用在事物处理。

数值运算算法例如:已知三角形的底a等8,高h等14,求三角形的面积s。

则数值运算算法为:1、a=8 a的值等于82、h=14 h的值等于143、s=a*h/2 计算面积S非数值运算算法例如从湛江乘火车去北京开会,其算法为:1、买火车票2、按时到车站3、登上火车4、到北京站后乘电车到会场5、参加会议二.C语言的特点:1·C语言简洁、紧凑,使用方便、灵活。

5·语法限制不太严格,程序设计自由度大。

6·C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

3·数据结构类型丰富。

4·具有结构化的控制语句。

7·生成目标代码质量高,程序执行效率高。

8·与汇编语言相比,用C语言写的程序可移植性好。

2·运算符丰富。

共有34种。

C把括号、赋值、逗号等都作为运算符处理。

三.C语言的基本结构(1)函数是组成C程序的基本单位,一个C的源程序有且只有一个main函数,但可以有若干个其它的函数。

(2)一个函数由两个部分组成:函数的首部:函数的第一行,包括函数名、函数类型、函数参数(形参)名、参数类型等。

函数体:由声明和执行两部分组成。

(3)一个C程序总是从main函数开始执行的,不管main函数在整个程序中的位置如何。

第五章 PLC的基本指令及程序设计


(4)RI,立即复位指令
用立即复位指令访问输出点时,从指令
所指出的位(bit)开始的N个(最多为 128个)物理输出点被立即复位,同时, 相应的输出映像寄存器的内容也被刷新。 用法: RI bit, N 例: RI Q0.0,1 应用举例:
LD = =I SI
I0.0 //装入常开触点 Q0.0 //输出触点,非立即 Q0.1 //立即输出触点 Q0.2, 1 //从 Q0.2 开始的 1 个 //触点被立即置 1

图5.4 LPS,LRD,LPP指令的操作过程
逻辑推入栈 逻辑读栈 逻辑弹出栈
前 iv0 iv1 iv2 iv3 iv4 iv5 iv6 iv7 iv8
后 iv0 iv0 iv1 iv2 iv3 iv4 iv5 iv6 iv7
前 iv0 iv1 iv2 iv3 iv4 iv5 iv6 iv7 iv8
T32,T96 T33~T36,T97~T100 T37~T63,T101~T255
3. 定时器指令格式

TON
通电延时型

TONR 有记忆通电延时型
TOF 断电延时型 IN—使能输入端;编程范围T0~T255; PT是预置值输入端,最大预置值32767;PT 数据类型:INT。PT寻址范围见附表1。

NETWORK 1 LD I0.0 S Q0.0, 1 NETWORK 5 LD I0.1 R Q0.0, 1
I0.0 I0.1 Q0.0
5.1.4 边沿触发指令(脉冲生成)
用途:边沿触发是指用边沿触发信号产生一个机器周 期的扫描脉冲,通常用作脉冲整形。 分类:边沿触发指令分为正跳变触发(上升沿)和负 跳变触发(下降沿)两大类。 正跳变触发指输入脉冲的上升沿,使触点ON一 个扫描周期。负跳变触发指输入脉冲的下降沿,使触 点ON一个扫描周期。 EU(Edge Up)正跳变, 无操作元件 ED(Edge Down)负跳变, 无操作元件

汇编语言源程序的框架结构(1)


AH,1
;1号DOS功能调用,接收分支号
21H
AL,'0'
;进行合法判断
ERROR
AL,'2'
ERROR
BX,TAB
;取地址表首址
AL,30H
AL,1
;段内转移乘以2,段间转移乘以4
AH,AH
;AH清零
BX,AX
WORD PTR [BX]
;产生多分支转移
精选课件
A0: MOV INT JMP A1: MOV INT JMP A2: MOV INT JMP
AL,1
;AL←(X×4-Y)/2
Z,AL
;存结果
;取程序段前缀首地址
精选课件
PROC1 ENDP
CODE ENDS
§5.3 分支结构程序设计
分支程序结构可以有两种形式,如图5.4所示,它们分 别相当于高级语言程序中的IF-THEN-ELSE语句和CASE 语句,它们适用于要根据不同条件做不同处理的情况。
精选课件
: TAB
JMP SHORT A0
JMP SHORT A1
参考程序:
JMP SHORT A2 :
DATA SEGMENT
MENU DB 0DH,0AH,"0:Chinese!"
DB 0DH,0AH,"1:English!"
DB 0DH,0AH,"2: German!"
DB 0DH,0AH,"Please choose one to answer the following question:$"
解:要测试出VAR中1的个数就应该逐位进行测试,可根据最低 位是否为1来计数,然后用移位的办法把各位数逐次移到最低位去, 共需要测试8次。程序流程如图5.11所示:

计算机科学与程序设计导论PPT第5章算法和程序设计语言final

折半查找key值(伪代码描述)
1 ikey←0;high←9;low←0 2 while low<high do
mid←(low+high)/2 if key=A[mid] return mid else if key>A[mid] low←mid+1 else if key<A[mid] high←mid-1
– 适合数据处理 – 函数式语言预定义一系列可供任何程
序员调用的原子函数 – 允许程序员通过若干原子函数的组合
创建新的函数
三种主要程序设计模式对比
• 对比
– 面向过程 • 根据业务逻辑从上到下写代码,使用场合包括单片机、嵌入式开发等
– 面向对象 • 将数据与函数绑定在一起,进行封装,这样能够更快速的开发程序,减少了重复代 码的重写过程
– 函数式 • 将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可,函数式更加 注重的是执行结果而非执行的过程
共同概念
• 共同概念
– 几乎每种编程语言(高级程序设计语言)都相同的内容 • 标识符 • 数据类型 • 语句 • 函数
共同概念
• 标识符
– 只用来标识某个实体的一个符号 – 变量、函数名、类名、对象名等 – 具有一定的命名规则 – 不能是语言关键字
基本算法:选择排序
• 选择排序
– 案例:对序列A进行从小到大排序,A={92,67,52,56,11,85,15,39,55,82}
对A选择排序(伪代码描述)
1
st←0; en←9; imax←0
2
for i←en to st do
imax =i
for j←st to i do
if A[imax]>A[i] imax←j

汇编语言程序设计复习

知识点第一章基础知识(1)正负数的补码表示, 掌握计算机中数和字符的表示;eg.假设机器字长为8位,[+3]补=00000011B,[-3]补= 11111101 H 。

十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。

8位二进制数被看成是带符号补码整数时,其最小值是-128,最大值是 127 。

第二章80x86计算机组织(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。

(2)存储单元的地址和内容每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。

存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址;实模式下逻辑地址、选择器和偏移地址;物理地址的表示段基地址加上偏移地址。

eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。

已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。

如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H .第三章80x86的指令系统和寻址方式与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。

数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS 指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档