第五章 汇编语言程序设计

第五章汇编语言程序设计5·1编程将片内40H一60H单元中内容送到以3000H为首的存特区中。

答:按题目要求编程如下:MOV Rl,#40HMOV R0,#20HMOV DPTR,#3000HLI:MOV A,@RlMOVX@DPTR,AINC R1INC DPTRDJNZ R0,Ll5.2编写计算下列算式的程序。

①23H+45H+ABH+03H=②CDH十l5H-38H-46H=③1234H+8347H=④ABl23H-43ADCH=答:按题目要求编程如下:①MOV A,#23HADD A,#45HADD A,#0ABHXCH A,B;相加后有溢出处理ADDC A,#00HXCH A,BADD A,#3H;结果A中是低位,B中是高位②MOV A,#0CDHADD A,#15HSUBB A,#t38HSUBB A,#46H③MOV A,#34HADD A,#047HMOV40H,AMOV A,#12HADDC A,#83HMOV4lH,A;结果40H中是低位,41H中是高位④CLR CMOV A,#23HSUBB A,#0DCHMOV40H,AMOV A,#0B1HSUBB A,03AHMOV41H,AMOV A,#0AHSUBB A,#04HMOV42H,A;结果40中是低位,42H中是高位5·3编程计算片由RAM区5OH~57H八个单元中数的算术平均值,结果存放在5AH中。

答:在本题计算中要求8个单元的和小于255。

按题目要求编程如下:MOV R0,#50HMOV R1,#8MOV A,#0LI:ADD A,@R0INC R0DJNZ R1,L1MOV B,#8DIV ABMOV5AH,A5·4编写计算下列的程序,设乘积和平方结果均小于255。

a,b值分别存在300H和3002H 单元中,结果存于片外3000H单元中。

25,a=b①Y=a*b,a<ba/b,a>b(a+b)2+10,(a+b)2<10②Y=(a+b)2,(a+b)2=10(a+b)2-10,(a+b)2>10答:按题目要求编程①MOV DPTR,#3001HMOVX A,@DPTR;取a值MOV30H,A;a值暂存储在30HJNC DPLMOVX A,@DPTR;取b值CJNE A,30H,L1;a=b?MOV A,#25SJMP EEL1:JNC L2MOV B,30HMUL ABSJMP EEL2:MOV B,AMOV A,30HDIV ABEE:MOV DPTR,#3001HMOVX@DPTR,A②MOV DPTR,#3001HMOVX A,@DPTRMOV30HINC DPLMOVX A,@DPTRADD A,30HMOV B,AMUL ABMOV31H,ACJNE A,#10,L1SJMP EEL1:JC L2CLR CSUBB A,#10SJMP EEL2:ADD A,#10MOV DPTR,#3000HMOVX@DPTR,A5.5设有两个长度均为15的教组,分别存放在以2000H和2100H为首的存储区中,试编程求其对应项之和,结果存放列以2200H为首的存储区中。

答:在本题中假设两数之和不超过255。

按题目要求编程如下:MOV DPTR,#2000HMOV Rl,#15LI:MOV DPH,#20HMOVX A,@DPTRMOV R2,AMOV DPH,#2lHMOVX A,@DPTRADD A,R2MOV DPH,#22HMOVX@DPTR,AINC DPLDJNZ Rl,LlSJMP$5·6设有100个有符号教,连续存放在以2000H为首地址的存储区中试编程统计其中正数、负数、零的个数。

答:在本题中设正数、负数、零分别存放在30H、31H、32H单元中。

按题目要求编程如下MOV30H,#0MOV31H,#0MOV32H,#0MOV DPTR,#2000H;设数据区首地址MOV Rl,#tl00;设数据区长度L4:MOVX A,@DPTRINC DPTRCJNE A,#0,L1INC32HSJMP L2LI:JC L3INC30HSJMP L2L3:INC31HL2:DJNZ R1,L4SJMP$5·7请将片外教据存储器地址为1000H~1030H的教据块,全部搬迁到片内RAM30H~60H 中,并将原教据块区域全部清0。

答:按题目要求编程如下MOV DPTR,#1000HMOV Rl,#30HMOV R0,#30HLI:MOVX A,@DPTRMOV@R0,AMOV A,#0MOVX@DPTR,AINC DPLINC R0DJNZ R1,L15·8试编写一子程序,使间寄存器Rl所指向的两个片外RAM连续单元中的高4往二进制数,合并为一个字节装入累加器A中。

己知Rl指向低地址,并要求该单元高4位放在A的低4位中。

答:按题目要求编程如下MOVX A,@Rl;将低字节读入ANL A,#0F0H;保留高4位SWAP A;交换到低4位MOV B,A;暂存INC R1;改变地址MOVX A,@Rl;将高字节读入ANL A,#0F0H;保留高4位ORL A,B;组合成新字节RET;返回5·9试编程把以2040H为首地址的连续50个单元中的无符号数按降存排列,存放到以3000H为首地址的存储区中。

答:该程序采用冒泡(下沉)法,也可用别的方法;排列前首先将数据搬到目的存储单元。

按题目要求编程如下:MOV R2,#50;排序字节数MOV R3,#20H;源地址暂存人R3、R4MOV R4,#40H;目的地址暂存人R5、R6MOV R5,#30HMOV R6,#00HSEND_LP:MOV DPH,R3MOV DPL,R4MOVX A,@DPTRINC DPTRMOV R3,DPHMOV R4,DPLMOV DPH,R5MOV DPL,R6MOVX@DPTR,AINC DPTRMOV R5,DPHMOV R6,DPLDJNZ R2,SEND_LPMOV R2,#49;重复次数CMP_LP1:MOV DPTR,¥3000H;起始地址MOV R3,#49;比较次数CMP_LP2;MOVX A,@DPTRMOV B,AINC DPTRMOVX A,@DPTRCJNE A,B,Ll;相邻两个数比较LI:JC NO_CHAGE;A小,不交换转NO_CHAGEMOV30H,A;准备交换CLR CMOV A,DPLSUBB A,#0lHMOV DPL,AMOV A,30HMOVX@DPTR,AINC DPTRMOV A,BMOVX@DPTR,ANO_CHAGE:DJNZ R3,CMP_LP2;50个数重复一遍?DJNZ R2,CMP_LPl;排序结束?LJMP$5·10试编一查表程序,从首地址为2000H和长度为100的数据块中找出ASCII吗A,将其地址送列20A0H和20AlH单元中。

答:按题目要求编程如下:MOV DPTR,#2000H;数据块首地址MOV R2,@100;查找长度GO_ON:MOVX A,@DPTR;取一个数CJNE A,#’A’,IFEND;是否等于'A'?MOV A,DPH;是,将地址存人指定单元MOV B,DPLMOV DPTR,#20A0HMOVX@DPTR,AINC DPTRXCH A,BMOVX@DPTR,ARETIFEND:INC DPTR;不是,下一个DJNZ R2,GO_ON;末查找完,继续RET5·11设在2000H~2004H单元中,存放有5个压缩BCD吗,编程将它们转换成ASCII 吗,存放到以2005H单元为首地址的存储区中。

答:按题目要求编程如下MOV R2,#05H;转换长度送R2MOV R3,#20H;源地址送R3,R4MOV R4,#00HMOV R5,#20H;目的地址送R5,R6MOV R6,#05HCHLP:MOV DPH,R3;取源地址MOV DPL,R4MOVX A,@DPTR;读一个数INC DPTR;修改源地址MOV R3,DPH;保存源地址MOV R4,DPLMOV B,A;数据暂存SWAP A;将高位转成BCD码ANL A,#0FHORL A,#30HMOV DPH,R5;取目的地址MOV DPL,R6MOVX@DPTR,A;将高位BCD码保存到目的单元INC DPTR;修改目的地址MOV A,B;将暂存数据取出ANL A,#0FH;将低位转成BCD码ORL A,#30HMOVX@DPTR,A;将低位BCD码保存到目的单元INC DPTR;修改目的地址MOV R5,DPH;保存目的地址MOV R6,DPLDJNZ R2,CHLP;转换未完,继续RET5.12在以2000H为首地址的存储区中,存放着20个用ASCII码表示的0~9之间的数,试编程将它们转挨成BCD吗,并以压缩BCD码(即一个单元存放二位BCD码)的形式存放在3000H~3009H单元中。

答:按题目要求编程如下MOV R2,#10;组合次数MOV R3,#20H;源地址送R3,R4MOV R4,#00HMOV R5,#30H;目的地址送R5,R6MOV R6,#00HC12LP:MOV DPH,R3;取源地址MOV DPL,R4MOVX A,@DPTR;读一个数ANL A,#0FH;屏蔽高4位,保留低4位SWAP A;将低4位暂存XCH A,BINC DPTR;修改源地址MOVX A,@DPTR;读下一个数ANL A,#0FH;屏蔽高4位,保留低4位ORL A,B;和暂存数据组合成新BCD码INC DPTR;修改源地址MOV R3,DPH;保存源地址MOV R4,DPLMOV DPH,R5;取目的地址MOV DPL,R6MOVX@DPTR,A;保存BCD码INC DPTR;修改目的地址MOV R5,DPH;保存目的地址MOV R6,DPLDJNZ R2,Cl2LP;转换未完,继续RET5·13试编程实现下列逻辑表达式的功能。

设P1.7~Pl.0为8个变量的输入端,而其中P1.7又作为变量输出端。

①Y=X o X1X2+X3+X4X5X6+X7②Y=X0X1十X2X3X4十X5X6X7答:按题目要求编程如下;输人端定义X0EQU P1.0X1EQU P1.1X2EQU P1.2X3EQU P1.3X4EQU P1.4X5EQU P1.5X6EQU P1.6X7EQU P1.7.Y EQU P1.8;暂存位定义TEMP1EQU00HTEMP2EQU01H表达式①MOV C,X0ANL C,X1ANL C,/X2ORL C,/X3MOV TEMPI,CMOV C,X4ANL C,X5ANL C,X6ORL C,/X7ORL C,TEMPIMOV Y,CRET表达式②MOV C,X0ANL C,X1CPL CMOV TEMPI,CMOV C,X2ANL C,X3ANL C,X4CPL CMOV TEMP2,CMOV C,X5ANL C,X6ANL C,X7CPL CORL C,TEMP2CPL CORL C,TEMPIMOV Y,CRET5.14试偏写一多字节无符号数加法子程存。

合集下载

第5章 汇编语言程序设计20PPT课件

第5章 汇编语言程序设计20PPT课件
第5章 汇编语言程序设计
第5章 汇编语言程序设计
5.1 汇编语言的基本概念
汇编语言是一种采用助记符表示的程序设计语言, 即用助记符来表示指令的操作码和操作数,用标 号或符号代表地址、常量或变量。
汇编语言编写的程序能够直接利用硬件系统的特 性直接对位、字节、字寄存器或存储单元、I/O端 口进行处理,同时也能直接使用CPU指令系统提供 的各种寻址方式。
(小于)、GT(大于)、LE(小于等于)、GE (大于等于) (4)分析运算符:SEG、OFFSET、TYPE、SIZE和 LENGTH (5)合成运算符:PTR、THIS、SHORT
5.3 伪指令语句
5.3.1 数据定义伪指令 5.3.2 符号定义伪指令 5.3.3 段定义伪指令 5.3.4 模块定义与连接伪指令 5.3.5 处理器选择伪指令
汇编程序时最早也是最成熟的一种系统软件。 汇编程序的功能如下:
用汇编语言编 写的源程序
汇编程序
目标程序
5.2汇编语言源程序的格式
5.2.1 分段结构 5.2.2 汇编语言语句的类型和格式
5.2.1 分段结构
汇编语言源程序的结构是分段结构形式,一个汇 编语言源程序由若干段(SEGMENT)组成,每个段 以SEGMENT语句开始,以ENDS语句结束。整个源 程序的结尾是END语句。
5.3.1 数据定义伪指令
数据定义伪指令的用途是定义一个变量的类型, 给操作数赋值,或者仅给变量分配存储单元而不 赋予特定的值
数据定义伪指令的一般格式为:
[变量名] 作数……]
伪指令定义符
操作数[,操
数据定义伪指令定义符后面的操作数可以是 常数、表达式或字符串,但每项操作数的值不能 超过由伪指令定义符所定义的数据类型限定的范 围。

微机原理与汇编语言第5章汇编语言程序设计

微机原理与汇编语言第5章汇编语言程序设计
(2) 约定段寄存器和段的关系(即物理段和逻辑 段的关系,使用一个或多个ASSUME语句实现)
(3) 装填段寄存器(只装填数据型段寄存器)
(4) 设置返回DOS的方法
例如:
MYDARA SEGMENT ……
MYDATA ENDS MYCODE SEGMENT
ASSUME CS:MYCODE,DS:MYDATA START:
无法正常连接
有算法错误
LINK .EXE文件
(1) 编辑程序
DOS 环境下用 EDIT 编辑器
WINDOWS 环境下用 记事本
(2)汇编源程序
宏汇编程序 MASM.EXE 或小汇编程序 汇编程序主要有以下功能:
① 检查源程序中语法错误,给出错误提示信息 ② 产生目标文件(.OBJ)、列表文件(.LST)及 交叉引用文件(.CRF) ③ 展开宏指令
end start
汇编后的目 标文件只有 208字节
汇编语言源程序的格式
例二 编程实现多字节加法,如 S=3B74AC60F8H+20D59E36C1H
DATA1
F8H 60H ACH 74H 3BH
……
被加数、和
DATA2
C1H 36H 9EH D5H 20H
加数
DATA SEGMENT
DATA1 DB 0F8H, 60H, 0ACH, 74H, 3BH
(3) 操作数
操作数即为操作的对象。在指令语句中,可能有 单操作数或双操作数,也可能无操作数或隐含操作数; 而在伪指令中可能有更多个操作数。当操作数不止一个 时,相互之间应该用逗号隔开。
可以作为操作数的有:常数、寄存器、标号、变量 和表达式等。
1) 常量:是指令在中出现的哪些固定值, 可以分为数值常数和字符串常数两类。

第05章汇编语言及程序设计ppt课件

第05章汇编语言及程序设计ppt课件

汇编语言 源程序
汇编
目标程序
汇编程序
一一对应
汇编语言的指令
机器语言的指令
汇编语言程序设计的特点:
➢ 汇编语言是面向机器的语言,CPU不同的机器有不同 的汇编语言
➢ 可以充分利用机器的硬件功能和结构特点
➢ 可有效地加快程序的执行速度,减少目标程序所占用 的存储空间
➢ 可以对输入/输出端口进行控制,实时性能好 ➢ 汇编语言程序移植性、通用性、可读性差
第 5 章 程序设计及汇编语言
内容安排
一. 程序设计步骤 二. 程序设计 三. 汇编语言及汇编程序 四. 汇编语言源程序格式及实例 五. 上机操作
§5.1 程序设计步骤
(1〕分析问题 (2〕建立数学模型 (3〕确定算法 (4〕绘制程序流程图 (5〕内存空间分配 (6〕编制程序与静态检查 (7〕程序调试〔实验)
[名字] DW <表达式或数据项表> 功能:表达式或项表中的每一项是一个/两个字
节数,他们从符号名地址开始按字节连续存放, 如:直D到1 表中DB数据12H项, 结12H束 12H
D1 DB 3 DUP (12H) MOV AX, D1
注意:① 表达式或数据项表多于一项时,项与项之间用 逗号“,”或空格分隔
MOV BL,0FFH ;将FFH送入BL寄存器
LOut: MOV AL,BL
OUT 73H,AL ;将结果的标志数据输出到 73H端口
HLT
;暂停
Lw10: MOV BL,00H
JMP LOut
L10to20: MOV BL,88H
JMP LOut
3. 循环程序
强制CPU重复执行某一指令系列〔程序段〕的一种程序 结构形式
组成:

汇编语言程序设计第5章

汇编语言程序设计第5章

6.整理文档
程序设计的结果包括两大部分,一是程序,二是文档。这 里讲的文档主要是包括各个设计阶段的规格说明书,以及用户 使用手册等。这是用户使用、维护程序的依据。 7.软件测试
测试是保证软件质量的重要手段,其主要方式是在设计测
试用例的基础上检验软件的各个组成部分。首先是进行单元测 试,查找各模块在功能和结构上存在的问题并加以纠正。其次 是进行组装测试,将已测试过的模块按一定顺序组装起来。最 后按规定的各项需求,逐项进行有效性测试,决定已开发的软 件是否合格,能否交付用户使用。
4.编码 这个阶段也称为程序编制或编程,主要是选择一种程序设
计语言,并用此语言具体地实现所设计的算法。
5.调试与排错
通过调试来排除程序中的错误,保证程序的正确。一般要作
静态检查和动态运行。静态检查包括人工检查和上机进行语法
检查;动态运行就是根据程序在工作中所有可能的情况,例如,
输入各种不同的初始数据,检查程序执行是否正确。
例5-1 若内存的数据段中,有缓冲区BUFFER,存取数据的
规则是先存储一个16位带符号的被除数,再存储一个16位带符
号的除数,接着存储商,最后存储余数。 DATA SEGMENT
BUFFER DW 812DH
DW 013CH DW ? DW ? DATA ENDS
;被除数
;除数 ;存商 ;存余数
STACK
JNC LABEL JO JNO JS LABEL LABEL LABEL
JNS LABEL
JP/JPE LABEL JNP/JPO LABEL
SF=0
PF=1 PF=0
为正时转移
结果为偶时转移 结果为奇时转移
(2) 根据两个无符号数比较结果来决定转移的条件转移指令

第5章 汇编语言程序设计ppt课件

第5章  汇编语言程序设计ppt课件

;段分配
START:MOV AX,DATA MOV DS,AX MOV AL,BUF1 ADD AL,BUF2 MOV SUM,AL MOV AH,4CH INT 21H
CODE ENDS END START
;填装数据段寄存器DS ;取第一个加数 ;和第二个加数相加
代 码 段
;返回DOS状态 ;CODE段结束 ;整个源程序结束
第5章 汇编语言程序设计
5.1 汇编语言程序格式 5.2 常用伪指令 5.3 汇编语言的编写 5.4 DOS功能调用 5.5 汇编语言设计
最新课件
教学重点
本章介绍程序结构、伪指令、DOS功能调用。 重点:汇编语言程序的基本结构;
伪指令及其使用方法; DOS功能调用; 基本的汇编语言程序设计方法。 难点:DOS功能调用的应用 汇编语言程序的设计
算术运算符
运 算
逻辑运算符

及 关系运算符

达 式
分析运算符
综合运算符
+、—、*、/、MOD
与数学运算符的意义相同。
A取N模D是、取OR余、数N。OT、XOR E例运Q:算、82结NEM果、O是LD一T、1个6G常;T数、结.L果E、为G2 E 两个2表0H达M式O比D较7时; ,结表果达为式4表示 方法/性质要相同 关时SSEI系Z,GE成为、、立全OT,YF0PF结SE果ET为、全LE1;NG不T成H、立 例把T规等偏H如存定价移IS:储存于地、指单储址MP令元OT单RV地M元OB址的XV分,性B解0X质;,为3段2地EQ址4和5
作用:由编程者按照一定的规则来定义的一种较“宏 大”的指令,包括多条指令或伪指令 。
最新课件
例题1
SEGMENT
ENDS

第5章 汇编语言程序

第5章 汇编语言程序

Y
条件满足?
N
处理段
例5-5 设内部RAM30H,31H单元存放两个无符号数, 将大数存在31H,小数存于30H。 ORG 1000H START:CLR C MOV A,30H SUBB A,31H JC NEXT ;次序符合,返回 MOV A,30H ;交换 XCH A,31H MOV 30H,A NEXT: NOP SJMP $ END
$
5-3 分支程序
由条件转移指令构成程序判断框,形成程序分支结构。 5-3-1 单重分支程序 一个判断决策框,程序有两条出路。 两种分支结构: 例1 求R2中补码绝对值,正数不变, 影响条件 负数变补。
MOV A,R2 JNB ACC.7,NEXT;为正数? CPL A ;负数变补 INC A MOV R2,A NEXT:SJMP NEXT ;结束
五、对源程序进行交叉汇编得到机器代码; 反汇编 —— 分析现成产品的程序,要将二进制 的机器代码语言程序翻译成汇编语言源程序。
六、程序调试。
通过微计算机的串行口(或并行口)把机器代 码传送到用户样机(或在线仿真器)进行程序 的调试和运行。
5.1.3评价程序质量的标准
(1)程序的执行时间。 (2)程序所占用的内存字节数。 (3)程序的逻辑性、可读性。 (4)程序的兼容性、可扩展性。 (5)程序的可靠性。
方法二:采用除10H取余数将BCD拆开 ORG 1000H MOV A,20H; 2B 1T MOV B,#10H ; 3B 2T DIV AB ; 1B 4T ORL B,#30H ; 3B 2T MOV 22H,B ; 3B 2T ORL A,#30H; 2B 1T MOV 21H,A ; 2B 1T SJMP $ END;7条指令、16个内存字节、13个机器周期。

汇编语言程序设计 第五章 课件


(3)串搜索指令 SCAS
LEA DX,ASS MOV AH,10 INT 21H LEA DI,ASS+2 ;输入串首址→DI MOV CL,ASS+1 ;输入串长度→CX MOVZX CX,CL MOV AL,′A′ ;计数器清零 MOV BX,0 P: REPNE SCASB ;查找字符‛A” JE A ;查到字符‛A”转A处执行 ;全部查完转结束 JMP OUT1 ;所有判断完否 A: CMP CX,0 JE OUT1 ;全部查完转结束 CMP BYTE PTR [DI], ‘M’ ;判断‛A”后的字符为‛M”否 JNE B ;不是转B处执行 INC BX ;是‛AM”计数器加1 B: JMP P ;未完转P继续判断 OUT1:MOV AH,4CH ;返回操作系统 INT 21H CODE ENDS END START
(1)串操作指令MOVS、CMPS、SCAS的 使用格式及功能; (2)简单宏指令的定义与调用方式; (3)模块程序设计的方法。
第五章
程序设计的其它方法与技术 三、本章学习的难点:
(1)MOVS与MOV、CMPS与CMP功能上
的差别及串操作指令的正确使用方法; (2)宏指令的定义与调用方式; (3)模块之间的组合、定位及通信方式; (4)模块化程序设计技术。
(5)存储字节/字/双字指令 STOS
●格式: ●功能:
STOS
OPD 或
STOSB 往字节串中存数 STOSW 往字串中存数 STOSD 往双字串中存数
⑴ 字节操作:(AL)→ ES:[DI]/[EDI] 字操作: (AX)→ ES:[DI]/[EDI] 双字操作:(EAX)→ES:[DI]/[EDI] 即将AL(或AX、EAX)中的数据送入DI/EDI所指的目的串中的字节(或 字、双字)存储单元中。修改指针DI/EDI,使之指向串中的下一个元素。 ⑵ 修改串指针,使之指向下一元素,修改方式为: i.当DF=0时,(SI)/(ESI)增量1(字节操作)或2(字操作) 或 4(双字操作)。 ii.当DF=1时,(SI)/(ESI)减量1(字节操作)或2(字操作) 或 4(双字操作)。 说明:该指令执行后,并不影响标志位,因而它一般只带REP重复前缀, 用来将一片连续的存储字节(或字)单元臵相同的值。

微机原理第五章 程序设计-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

《汇编语言程序设计》第5章基本汇编语言程序设计.ppt

汇编语言程序设计的基本步骤: 1.分析题意,确定数据结构和算法 2.根据算法绘制程序流程图 3.根据流程图编写程序 4.调试程序
5.1 汇编语言程序的设计步骤
汇编语言程序设计的基本步骤
例5.1 在100个字的无符号整数字中找出最 大数。
5.1 汇编语言程序的设计步骤
汇编语言程序设计的基本步骤
5.2 顺序结构的程序设计
(2)输出:在8086.8088指令系统中,字符的输出是由 DOS21H中断的02H子功能来实现的,命令序列如下: MOV AH,02H INT 21H 其作用是将寄存器DL中所存放的字符进行显示输出, 故在执行该命令序列之前,应先将被输出字符的ASCII 码存入DL中。
程序的基本结构
1.顺序结构 2.分支结构 3.循环结构
ห้องสมุดไป่ตู้
5.1 汇编语言程序的设计步骤
程序的基本结构 1.顺序结构
5.1 汇编语言程序的设计步骤
程序的基本结构 2.分支结构
5.1 汇编语言程序的设计步骤
程序的基本结构 3.循环结构
5.1 汇编语言程序的设计步骤
第5章基本汇编语言程序设计
1.分析题意,确定数据结构和算法 (1)初始化,建立一个数据指针指向数据区的首
地址; (2)将第一个数存入寄存器(如AX)中; (3)调整数据指针,使其指向下一个数; (4)将数据指针所指的数与寄存器AX的内容相比
较,如果该数较大,则将其存入AX,否则丢掉; (5)重复执行(3)、(4)两步,直至将数组中
分析:比较两数可用CMP指令,而带符号数的比 较结果可由标志位SF、OF来确定,选用的转移 指令应为JG、JL等。
第5章基本汇编语言程序设计
5.1 汇编语言程序的设计步骤 5.2 顺序结构的程序设计 5.3 分支结构的程序设计 5.4 循环结构的程序设计 5.5 子程序设计

单片机课件第五章__汇编语言程序设计


MOV 31H,A ;暂停
开始 取数,A←(30H) A为负数? N Y A←64H
图 例
5-4 4.3
A=0?
N A←X+2 存数,(31H)←A(30H) 结束 A←|X|
程 序 流 程 图
3.多向分支程序设计举例
【例5.4】 根据R0的值转向7个分支程序。
R0<10,转向SUB0; R0<20,转向SUB1;
JMP @A+DPTR ;PC ← A+DPTR TAB: AJMP SUB0 ;转移指令表 AJMP SUB1 AJMP SUB5 AJMP AJMP SUB2 SUB6
开始
K=? K=0 转SUB0 K=1 …… K=6 转SUB1 转SUB6
图5-5 多向分支程序流程图
返回本节
4.2.4 循环程序
5.2.2 顺序程序
5.2.3 分支程序
5.2.4 循环程序
5.2.5 子程序 5.2.6 位操作程序
返回本章首页
5.2.1 汇编语言程序设计步骤
1.分析问题
2.确定算法
3.设计程序流程图 4.分配内存单元 5.编写汇编语言源程序 6.调试程序
返回本节
5.2.2 顺序程序
顺序程序是一种最简单,最基本的程序。
【例5.2】 设X、Y两个小于10的整数分别存于 片内30H、31H单元,试求两数的平方和并将 结果存于32H单元。 解:两数均小于10,可利用乘法指令求平方。 程序流程如图5-2所示。参考程序如下: ORG 2000H
MOV
MOV
A,30H
;取30H单元数据
B,A ;将X送入B寄存器
MUL AB
ONE DATA 30H
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档