第3章(3)汇编程序设计
第三章 80C51单片机汇编语言程序设计(本科)

ORG START: CLR MOV MOVX MOV INC MOVX SUBB JNC XCH SJMP BIG1: MOVX BIGO: INC MOVX END
8000H C;进位清0 DPTR, #ST1; 设数据指针 A, @DPTR; A←((ST1)),取N1 R2, A; 暂存N1 DPTR; DPTR← ST2(指向N2单元) A, @DPTR; 取N2存于A中 A, R2;N1,N2比较(N2-N1,差在A中) BIG1;N2≥N1,转BIG1,N2<N1,顺序执行 A, R2;N1,N2互换,A ←N1 BIG0 A, @DPTR;A ←N2 DPTR; DPTR← ST3(指向N3单元) @DPTR, A;ST3 ←大数 返回
等、不相等等各种条件判断。
例:两个8位无符号二进制数比较大小。假设在外部RAM中有 ST1、ST2和ST3共3个连续单元(单元地址从小到大),其中ST1
、ST2单元中存放着两个8位无符号二进制数N1,N2,要求找出其
中的大数并存入ST3单元中。
解:(1)分析任务:比较两个数的大小
(2)算法:算术运算、控制转移 (3)程序结构:单分支 (4)数据类型:单字节、二进制、无符号数 (5)数据结构:单元地址升序排列
思考题
3) ORG MOV MOV MOVX ADD MOVX DEC DEC MOVX ADDC 1000H RO, R1, A, A, @R1, R0; R1; A, A, #52H;加数N1的低字节地址送地址指针R0 #55H;加数N2的低字节地址送地址指针R1 @R1; 取N2的低字节 @R0; N1、N2低字节相加 A; 保存N1、N2低字节和 修改加数N1的地址指针内容 修改加数N2的地址指针内容 @R1; 取N2的中间字节 @R0; N1、N2中间字节带低字节和进位相加
汇编语言程序设计(第四版)第3章【课后答案】

汇编语言程序设计第四版【课后习题答案】--囮裑為檤第3章汇编语言程序格式〔习题3.1〕伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用?〔解答〕伪指令语句与硬指令语句的本质区别是能不能产生CPU动作;伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。
〔习题3.2〕什么是标识符,汇编程序中标识符怎样组成?〔解答〕为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符;汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,?,@)组成,不能以数字开头。
〔习题3.3〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。
〔解答保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。
汇编语言对大小写不敏感。
如定义字节数和字符串的DB就是伪指令助记符。
〔习题3.4〕汇编语句有哪两种,每个语句由哪4个部分组成?〔解答〕汇编语句有执行性语句和说明性语句;执行性语句由标号、硬指令助记符、操作数和注释四部分组成;说明性语句由名字、伪指令助记符、参数和注释四部分组成〔习题3.5〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。
〔解答〕⒈编辑文本编辑程序汇编语言源程序.asm⒉汇编汇编程序目标模块文件.obj⒊连接连接程序可执行文件.exe或.com⒋调试调试程序应用程序〔习题3.6〕区分下列概念:(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量〔解答〕(1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。
(2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。
第3章 8086指令系统-汇编语言程序设计教程-陆遥-清华大学出版社

直接寻址方式可以利用变量名的偏移地址属性来 描述操作数的偏移地址(可直接用变量名,或将 变量名置于方括号[ ]中),段寄存器默认为DS。 如果实际使用的段寄存器不是DS,则必须用段 前缀明确指出。
【例3.7】设数据段内有如下变量定义语句
VAR DB 76H,5CH,0A3H,08H
分析以下指令的执行结果。
3.1 指令系统基本概念
指令是给计算机下达的一个简单操作任务,CPU 所能执行的所有指令构成了一个计算机的指令系 统(也称指令集)。
汇编语言指令是对机器指令的符号化表示,采用 助记符来表示指令的操作功能和操作对象。
指令通常可以分为以下几类:
⑴ 数据传送类指令。 ⑵ 算术运算类指令。
⑸ 程序控制类指令。 ⑹ 处理器控制类指令。
【例3.3】要求将数据68传送给AL寄存器,写出相应的传 送指令。 分析:由于AL寄存器接收数据,所以目的操作数为AL, 采用寄存器寻址方式,而源操作数为常数68,采用立即寻 址方式
MOV AL,68 ;AL←68
【例3.4】设被加数存于寄存器DX中,加数为512,写出相 应的加法指令。 分析:因为被加数由寄存器DX提供,所以DX为目的操作 数,采用寄存器寻址方式,而加数为常数512,采用立即 寻址方式
操作数。
2. ADD指令
指令格式:ADD DST,SRC 指令功能:DST←(DST)+(SRC) 。执行加法运算。 操作数特点:两个操作数。被加数DST为目的操作数,加
数SRC为源操作数。
3. NOT指令
指令格式:NOT OPR 指令功能:OPR←(OPR) 。执行逻辑非运算。 操作数特点:一个操作数。OPR既是目的操作数,也是源
段地址由段寄存器提供,用段前缀(DS:,ES:, CS:或SS:)来指明;偏移地址(亦称有效地址) 则有多种表示形式,由此形成了不同的存储器寻 址方式。
汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。
〔解答〕CPU:包括运算器、控制器和寄存器组。
运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。
存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。
外部设备:实现人机交换和机间的通信。
〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。
〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。
辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。
RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。
存储器由大量存储单元组成。
为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。
KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。
〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。
〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
计算机接口技术课件 第三章 MCS-51单片机汇编语言与程序设计基础

例2:编制一段程序,要求在端口线 :编制一段程序,要求在端口线P1.0,P1.1上分别产生周期为 , 上分别产生周期为 200us和400us的方波.设单片机的外接频率为 的方波. 和 的方波 设单片机的外接频率为12MHz. . 分析:利用定时器产生方波,将定时器设置成为工作方式 , 分析:利用定时器产生方波,将定时器设置成为工作方式3,将寄 存器T0定时 定时100us,T1定时 定时200us,达到定时时间后引起中断,在中 存器 定时 , 定时 ,达到定时时间后引起中断, 断服务程序中各自将P1.0和P1.1引脚取反. 引脚取反. 断服务程序中各自将 和 引脚取反 定时器预设值的设置: 定时器预设值的设置: 单片机的晶体振荡频率为12MHz,计时器的计时频率为1MHz,机 单片机的晶体振荡频率为 ,计时器的计时频率为 , 器周期为1us. 定时 定时100us,因此寄存器 需要计数 需要计数100次 器周期为 . T0定时 ,因此寄存器T0需要计数 次 ,其预 置值为64H+1=9CH. T1定时 定时200us,因此寄存器 需要计数 需要计数200次 置值为 . 定时 ,因此寄存器T1需要计数 次 其预置值为C8H+1=38H. ,其预置值为 . 定时器T0,T1的工作方式设置: 的工作方式设置: 定时器 的工作方式设置 T0采用工作方式 ,因此 采用工作方式3,因此TMOD寄存器的值设置为 寄存器的值设置为#22H. 采用工作方式 寄存器的值设置为 . 定时器T0,T1的控制设置: 的控制设置: 定时器 的控制设置 打开T0, ;要求TCON寄存器的值设置为 寄存器的值设置为#50H. 打开 ,T1;要求 寄存器的值设置为 .
定义存储区域的大小. 6. DS —定义存储区域的大小. 定义存储区域的大小 例: ORG 0350H DS 3
《IBM-PC汇编语言程序设计》(第2版)第3章习题解答及答案

第3章习题答案3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1)立即寻址;答案:无。
如:MOV AX,5(2)直接寻址;答案:7237H 如:MOV AX,[7237H](3)使用BX的寄存器寻址;答案:无。
因不涉及内存如:MOV AX,BX(4)使用BX的间接寻址;答案:637DH 如:MOV AX,[BX](5)使用BX的寄存器相对寻址答案:D5B4H 如:MOV AX,[BX+ 7237H](6)基址变址寻址答案:8E18H 如:MOV AX,[BX][SI](7)相对基址变址寻址;答案:无效,溢出如:MOV AX,[BX][SI] + 7237H 3.2 试根据以下要求,写出相应的汇编语言指令:(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中;答案:ADD DX,BX(2) 用寄存器BX 和SI 的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中;答案:ADD AL,[BX][SI](3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回到存储器中;答案:ADD [BX+0B2H],CX (4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回到该存储单元中;答案:ADD WORD PTR [0524H],2A59H (5)把数0B5H与(AL)相加,并把结果送回AL中。
答案:ADD AL, 0B5H3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。
要求使用以下几种寻址方式:(1) 寄存器间接寻址答案:LEA BX, BLOCKADD BX, 5*2MOV DX, [BX](2) 寄存器相对寻址答案:LEA BX, BLOCKMOV DX, [BX+5*2](3) 基址变址寻址答案:LEA BX, BLOCKMOV SI,5*2MOV DX, [BX][SI]3.4 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56, (20103)=78H,(21200)=2AH,(21201)=4CH, (21202)=B7H, (21203)=65H,试说明下列各条指令执行完后AX寄存器的内容。
第3章 程序设计语言PPT课件
11/6/2020
计算机科学导论
12
3.1.3 高级语言程序设计的基本内容
➢ 高级语言程序设计依赖于各自特定的语句和语法。 ✓语句是构成源程序的基本单位。 ✓语法是指管理语言结构和语句的一组规则。
11/6/2020
计算机科学导论
13
3.1.3 高级语言程序设计的基本内容
1.高级语言的基本符号
高级语言的语法成分都是由基本符号组成的,分为单字 符和多字符两种。单字符基本符号由单个字符组成。 ➢ 字母:英文字母A~Z、a~z,共52个符号。 ➢ 数字:0~9,共10个数字符号。 ➢ 特殊字符:+ 、-、*、/、^、=、(、)、>、<、,、空格等。 多字符基本符号由两个或两个以上的字符组成,如:
计算机科学导论
11
3.1.2 计算机程序设计语言
高级语言的优点:
➢ 语句的功能强,程序员编写的源程序比较短,容易学 习,使用方便,可移植性较好,便于推广和交流。
高级语言的缺点:
➢ 编译程序比汇编程序复杂,而且编译出来的目标程序 往往效率不高,长度和运行时间都较长。
➢ 因此,在很多对时间要求比较高的系统,如某些实时 控制系统或者大型计算机控制系统中,低级语言(主 要是汇编语言)仍然得到了一定的应用。
器能够识别的机器语言是不相同的。 ➢ 机器指令都是用一串0、1构成的二进制位串来表示的,也
称为机器码。
➢ 用机器指令编写的程序称为机器语言程序,或称为目标程 序,这是计算机能够直接执行的程序。
缺点:机器语言难以阅读和理解,编写和修改都比较困难, 而且通用性较差。
11/6/2020
计算机科学导论
5
3.1.2 计算机程序设计语言
➢ 标号 是在高级语言中的程序语句前所加的一个
《汇编语言程序设计 —基于ARM体系结构 (第4版)》教学课件—03ARM指令系统
图3-1程序设计语言的层次结构
为了提高程序设计的效率,人们提出了汇编语言的概念。将机器码用指令助记符表示,这样就比机器语言方便得多。不过,在使用汇编语言后,虽然编程的效率和程序的可读性都有所提高,但汇编语言同机器语言非常接近,它的书写风格在很大程度上取决于特定计算机的机器指令,所以它仍然是一种面向机器的语言。 为了更好地进行程序设计,提高程序设计的效率,人们又提出了高级语言程序设计的概念。如C、JAVA等,这类高级语言对问题的描述十分接近人们的习惯,并且还具有较强的通用性。这就给程序员带来极大的方便。当然这类高级语言在执行前必须转换为汇编语言或其它中间语言,最终转换为机器语言。通常有两
3.2 ARM汇编语言
3.2.1指令和指令格式3.2.2指令的可选后缀3.2.3指令的条件执行3.2.4 ARM指令分类
3.2.1指令和指令格式
1.指令和指令系统 指令是指示计算机进行某种操作的命令 指令的集合称为指令系统。指令系统的功能强弱在很大程度上决定了这类计算机智能 的高低,它集中地反映了微处理器的硬件功能和属性。2.指令的表示方法从形式上看,ARM指令在机器中的表示格式是用32位的二进制数表示。计算机根据二 进制代码去完成所需的操作,如ARM中有一条指令为:ADDEQS R0,R1,#8;其二进制代码形式为:
3.1 指令基础
3.1.1程序设计语言的层次结构3.1.2指令周期和时序3.1.3程序的执行过程
3.1.1程序设计语言的层次结构
计算机程序设计语言的层次结构如图3-1所示,分为机器语言级、汇编语言级、高级语言级,机器语言是与计算机硬件最为密切的一种语言,它由微程序解释机器指令统。这一级也是硬件级,是软件系统和硬件系统之间的纽带。
例如:在8MHz的ARM微处理器中,一个 S 周期是125ns,而一个 N 周期 是 250ns。应当注意到这些时序不是 ARM 的属性,而是内存系统 的属性。例如,一个 8MHz的ARM微处理器可以与一个给出125ns 的 N 周期的 RAM 系统相连接。处理器的速率是 8MHz 只是简单 的意味着如果你使任何类型的周期,在长度上小于 125ns 则它不 保证能够工作。图3-2显示一种ARM存储器周期时序。
汇编语言程序设计(第二版)课后习题答案
汇编语言程序设计(第二版)课后习题答案第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答:30022H字节单元内容:ABH30024H字节单元内容:EFH30021H字单元内容:AB34H30022H字单元内容:CDABH4.解答:这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址5.解答:CS+IP第一个字的物理地址为:0AAA40H6.解答:条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07.下列操作可使用那些寄存器?(1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH,AL等(2)循环计数CX(3)乘法和除法DX,AX,AH,AL(4)保存段地址CS,DS,ES,SS(5)表示运算结果为O FLAGS(6)将要执行的指令地址IP(7)将要从堆栈取出数据的地址BP,SP,SS8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9.一一对应;5--A4--B2--C3--D12--E9--F11--G10--H13--I8--J7--K6---L1--M15--N14--O第三章1.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH(5)使用BX的寄存器相对寻址0D5B4H(6)基址变址寻址8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX(2)ADD AL,[BX][SI](3)ADD[BX][0B2H],CX(4)MOV AX,2A59H ADD[0524H],AX(5)ADD AL,0B5H3.(1)寄存器间接寻址MOV BX,OFFSET[BLOCK][0AH]MOV DX,[BX](2)寄存器相对寻址MOV SI,OAHMOV DX,[BLOCK][SI](3)基址变址寻址MOV BX,BLOCKMOV SI,OAHMOV DX,[BX][SI]4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(2 1200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。
汇编语言程序设计_第3章 80x86指令系统
3.3.2 算术指令
1. 加法
一般形式:
ADD dest, src ; dest = dest + src
ADC dest, src ; dest = dest + src + CF
INC
dest
; dest = dest + 1
语法格式:
ADD reg/mem, reg/mem/imm
ADC reg/mem, reg/mem/imm
movsx ax, al ; 等价于cbw movsx eax, ax ; 等价于cwde movsx eax, al ; 等价于顺序执行cbw与cwde
2019/8/26
80x86汇编语言程序设计
3.3.1 数据传送指令
(3)MOVZX 一般形式: MOVZX dest, src ; src零扩展为dest;386新增 语法格式: MOVZX reg16, reg8/mem8 MOVZX reg32, reg8/mem8/reg16/mem16
2019/8/26
80x86汇编语言程序设计
3.3.1 数据传送指令
5. 堆栈操作指令
80x86系统的堆栈具有如下特点: 堆栈是在内存的堆栈段中,具有“先进后出”的特点。 堆栈只有一个出入口,即当前栈顶。当堆栈为空时,栈顶和栈底指向同一内存单
元。 堆栈有两个基本操作:PUSH(进栈)和POP(出栈)。PUSH操作使栈顶向低地
INC
reg/mem
对标志位的影响:
ADD、ADC:按一般规则影响CF、OF、SF和ZF。 INC:不影响CF,其它同ADD。 说明:ADD与ADC的2个操作数必须类型匹配,且不能同时是内存操作数。
2019/8/26
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•程序设计方法
• 图 4 7 程 序 流 程 图 .
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
★2.条件控制
【例9】试编一个程序将字单元BUF中所含1的个 数存入COUNT单元中。
要测出BUF字单元所含1的个数,首先将BUF中的数 送给寄存器 AX ,然后将 AX 寄存器逻辑左移一次,如 果CF=1,则表明AX中的最高位为1,则计数器CL计数 1 次,如果 CF=0 ,表明 AX 最高位为 0 ,这样依次将最 高位移入 CF 中去测试。移位之后,判断 AX 的值是否 为0,如果为0则结束循环,不为0,则继续循环。
(2) 转移:主要是条件转移指令Jcc,cc为条件。 单标志位判断……JC,JZ,JO,JP,JS,JAE等; 多标志位判断……JA,JG,JGE等。
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
采用比较指令和转移指令实现分支
CMP d,s;d- s Jcc 标号
设输入数据为X、输出数据Y,且皆为字节变量。 程序流程图如图2所示。
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
•图4.2 分支运算程序流程图
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
DATA
X Y DATA STACK
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
• 图 4 . 1 顺 序 运 算 程 序 流 程 图
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
源程序如下:
DATA X Y Z V W SEGMENT DW DW DW DW DW 200 100 3000 10000 2 DUP(?)
INT
AH,4CH
21H
CODE ENDS ;退出DOS 状态
END START
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
【例2】
已知某班学生的英语成绩按学号(从1开始)从
小到大的顺序排列在 TAB 表中,要查的学生
的学号放在变量 NO 中,查表结果放在变量
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
CWD SUB AX,CX
;(V)符号扩展
SBB DX,BX;(DX:AX)-(BX:CX)→(DX:AX)
IDIV
X
;(DX:AX)/X
;商→W ;余数DX→W+2
MOV W,AX MOV W+2,DX
MOV
AX,X AX,Y ;X>Y? L1 AX,Y ;Y>Z? AX,Z EXIT AX,Z MAX,AX AH,4CH 21H START
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
4. 循环程序设计
1 ) 循环程序的结构 2 ) 单重循环程序设计 3 ) 多重循环程序设计
其流程图如图8所示。
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
广东药学院医药信息工程学院
m/holly_he
返回本节
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
单重循环程序设计
1.计数控制
2.条件控制
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
1.计数控制
【例7】已知有N个元素存放在以BUF为首址的 字节存贮区中,试统计其中正元素的个数。
AH,4CH
INT
CODE ENDS END
21H
START
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
【例5】
试编一程序,求三个带符号字数据中的 最大值,并将最大值存入MAX字单元中。
设三个带符号数分别在三个字变量X、Y、 Z中存储。程序流程图如图3所示
NO
DB 10
DB?
ENGLIST DATA ENDS
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
BEGIN:MOV AX,DATA MOV DS ,AX
LEA
DEL
返回本章首页
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
循环程序的结构
1.初始化部分 2.循环体部分 3.循环控制部分
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
循环程序的常见结构形式如图5(a)、(b)所示。
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
图4.3 [例4.3.5]程序流程图
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
STAC
DB STACK DATA X Y Z
SEGMENT STACK
200 DUP(0) ENDS SEGMENT DW DW DW 00ABH –5 200
•程序设计方法
【例8】
【例 8】试编写一程序,要求比较两个字符串 STR1和STR所含字符是否相同,若相同则显 示 ‘ MATCH ! ’ , 若 不 相 同 则 显 示 ‘ NO MATCH!’。(程序略) 其流程图如图7所示。
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
1 . 汇编语言程序设计的一般步骤
汇编语言程序设计一般有以下几个步骤: 1).分析问题,确定算法 2).绘制流程图 3).根据流程图编制程序 4).调试程序
返回本节
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
2 流程图
1).流程图的概念
DATA
ENDS
STACK SEGMENT STACK DB 200 DUP(0)
STACK ENDS
CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
Start:
MOV MOV IMUL MOV MOV MOV
MAX
DATA
DW
ENDS
?
CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
MOV CMP JG MOV L1:CMP JG L2:MOV EXIT: MOV MOV INT CODE ENDS END
流程图是由特定的几何图形、指向线、文字说明 来表示数据处理的步骤,形象描述逻辑控制结构 以及数据流程的示意图。流程图具有简洁、明了、 直观的特点。
2).流程图符号表示
(1)起止框:表示程序 的开始和结束。
•起止框
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
ENGLISH中。编写程序如下:
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
STACK
SEGMENT STACK DB 200 DUP(0)
STACK DATA
ENDS SEGMENT
TAB DB 80,85,86,71,79,96
DB 83,56,32,66,78,84
BX,TAB
AL
MOV AL,NO
XLAT TAB
MOV ENGLISH,AL MOV AH,4CH INT CODE ENDS END BEGIN
m/holly_he 广东药学院医药信息工程学院
21H
•程序设计方法
课堂练习
求x,y,z三变量之和,将和放入buf中。
(2)判断框
(3)处理框
(4)调用框
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
(5)指向线
(6)连接框
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
2. 顺序程序设计
指令顺序执行,无分支、无转移、 无循环。 硬件支持是IP自动加1,从内存 取出一个指令字节,IP自动加1。
SEGMENT
DB -10 DB ? ENDS SEGMENT STACK
DB
STACK CODE
200
DUP(0)
ENDS SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE START: MOV AX,DATA
m/holly_he
广东药学院医药信息工程学院
广东药学院医药信息工程学院
m/holly_he
•程序设计方法
3.分支程序设计
1 无条件转移 jmp 指令
2 有条件转移
返回本章首页
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
分支程序二要素
具有判断和转移功能的程序
(1) 判断:运算结果的状态标志CF,PF,ZF,SF,OF;
•程序设计方法
第3章(3)
1. 概述
Hale Waihona Puke 程序设计方法2. 顺序程序设计
3. 分支程序设计
4. 循环程序设计 5. 子程序设计
开 始
广东药学院医药信息工程学院 m/holly_he
•程序设计方法
1. 概述
1 汇编语言程序设计的一般步骤
2 流程图
返回本章首页