6-汇编语言程序结构
- 格式:pdf
- 大小:299.21 KB
- 文档页数:10


162 福建 电脑 2010年第6期
汇编语言分支结构程序设计技巧
冯灵霞.张亚娟
(黄河科技学院信息工程学院河南郑州450063)
【摘要】:汇编语言是结构化的,分支结构是三种结构中的一个重要结构。汇编语言中的分支结构主 要是用条件转移指令来实现的,本文结合汇编语言中条件转移指令的特点及作者多年的教学经验提出了设计分支结构程序 的简便方法。
【关键词】:汇编语言,分支结构,流程图
一、引言 《汇编语言程序设计》是高等院校计算机专业教学体系中的
一门重要的专业基础课程r11。汇编语言是能够充分发挥计算机
所有硬件特性并能直接控制硬件的最快、最有效的语言。它和计 算机的硬件系统紧密联系.本文主要讨论8086/8088的汇编语 言。汇编语言是结构化的『21,结构化编程技术简化了程序实现,
使程序具有更好的可读性.并且易于维护。结构化程序的三大结
构是顺序、分支和循环。其中分支结构是比较重要的一种结构. 比如说循环结构的控制部分也属于分支。进行汇编语言编程主 要经历以下几步冈:
1)分析题意,确定算法。
2)根据算法。画出程序框图。 3)根据框图编写程序 4)上机调试程序。
其中流程图的绘制对于初学者来说.特别重要,画流程图的 过程就像写作文之前打草稿,画得越细.后期写程序的时候就越 容易。接下来本文将对分支结构流程图的绘制过程进行详细介
绍.提出分支结构程序设计的简便方法。 二、分析 这里我们以这样的一个例子为例进行介绍:已定义了两个 整数变量A和B.试编写程序完成以下功能:
1)若两个数中有一个是奇数,则将奇数存入A中,偶数存 入B中。
2)若两个数均为奇数.则将两数均加l后存回原变量。 3)若两个数均为偶数.则两个变量均不变。 首先,我们对题意进行分析。变量A和B的奇偶情况有四 种可能:一是AB同奇,二是AB同偶,三是A偶B奇,四是A奇
B偶。其中第二和第四种情况不做处理即可,其余两种情况需要 根据题目要求做相应的处理。接下来把我们的分析结果用流程 图进行描述.画这个流程图的时候,和自己的设计思路越贴近越
实验3 顺序结构程序设计
一、实验目的
学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。
二、示 例
源程序如下:
data segment
a db 10
b db 20
d db 30,40,50
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov al,d+1
add al,d
mov a,al
mov al,d+1
add al,d+2
mov b,al
add d,10
add d+1,20
add d+2,30
exit: mov ah,4ch
int 21h
code ends
end start 阅读程序,试问程序执行到exit时,字节单元a、b、d、d+1、d+2中的内容各是什么?(结合程序分析和实验实际结果截图)
分析出结果,并上机验证。
三、实验题
求表达式Y=A*X2+B*X+C的值,已知a、b、d分别存放在dataa、datab、datad字节单元,X存放在TABLE字节单元,结果Y放入RESULT字单元。
要求: ① 在DEBUG下多次修改X的值,观察执行结果Y
四、实验报告
写出程序清单,记录运行结果;总结DEBUG中U、E、D、T、G命令的功能。
程序代码:
data segment
dataa db 1 结果:a:46
b:5A
d:28
d+1:3C
本章主要介绍了汇编语言程序的基本结构与组成、伪指令及其使用方法、DOS功能调
用和BIOS功能调用,以及汇编语言程序设计的基本技术。本章还给出了汇编语言程序上
机和调试的实例。通过该实例,可以了解汇编语言程序设计与开发的全过程。本章中介
绍的程序设计技术包括简单程序设计、分支程序设计、循环程序设计和子程序设计,每
种程序设计均给出了多个具体实例,并对设计思想进行了分析,提供了有价值的程序设
计技术和方法。使用这些技术和方法可以为PC机开发基于汇编语言的软件。
6.1 汇编语言与汇编程序
6.1.1 汇编语言的基本概念
1.机器语言与汇编语言(Machine Language and Assembly Language)
计算机程序由一系列指令序列组成。计算机通过对每条指令的译码和执行来完成相应
的操作。指令必须以二进制代码的形式存放在内存中,才能够被计算机所识别和理解,并
加以执行。由二进制代码表示的指令称为机器指令,相应的程序称为机器语言程序。
机器语言程序由0、1二进制代码组成,不便于编程和记忆。由此产生了用指令助记符
表示的汇编语言指令,对应的程序称为汇编语言程序。
例6-1 将4位二进制数转换为ASCII码字符。当数在0000B-1001B时,对应的ASCII
码为‘0’-‘9’;当数在1010B-1111B时,对应的ASCII码为‘A’-‘F’。设待转换的数
据已在累加器AL中(低4位)。8086汇编语言程序如下:
AND AL,0FH
CMP AL,0AH
JB NUM
ADD AL,07H
NUM: ADD AL,30H
RET
对例6-1程序进行汇编以后,得到8086汇编指令对应的机器代码(用十六进制数表示),
如表6.1所示。在表6.1中,第一列表示机器代码存放的内存地址,该地址与机器所处的
环境有关;第二列表示8086机器代码,每条指令的机器代码由一个或几个字节组成;第三
列表示汇编指令,由指令助记符和操作数组成。指令前可能有标号,表示该指令第一个字
编写密码程序
要求:(1)原密码(8位:20090102)已存在,放在数据区PASSWORD处;(2)运行时提示输入8位密码,提示信息存在数据区PROMPT处;(3)输入密码(8位)不显示,逐个字符用‘*’号代替,并将密码存放在开辟的数据区INPUT处;(4)密码不对时显示错误信息(错误信息存放在数据区ERROR处),返回DOS;(5)密码正确时显示成功信息(成功信息存放在数据区SUCCESS处),返回DOS。(6)定义宏指令和子程序,其中提示信息输出用宏指令OUTPUT实现,回车换行用子程序CRLF实现。
参考程序如下:
;-------------------------------------------
OUTPUT MACRO X
LEA DX, X
MOV AH, 9
INT 21H
ENDM
;-------------------------------------------
DATA SEGMENT
PASSWORD DB ‘20080102’
COUNT EQU $-PASSWORD
PROMPT DB ‘Please input 8 password character:’,‘$’
INPUT DB COUNT DUP(?)
ERROR DB ‘Your password is wrong! 13,10,Input again:’,‘$’
SUCCESS DB ‘Your password is right! Ok! Welcome you!’,13,10,‘$’
DATA ENDS
STACK SEGMENT
DB 256 DUP(?)