版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.3
8086/8088汇编语言程序设计基本方法程序设计步骤:1.
分析问题,抽象出数学模型;2.
确定实现数学模型的算式;3.
绘制描述程序的流程图(包括确定内存单元和分配
寄存器);4.
编写源程序;5.
上机运行调试。顺序程序结构
一般语句条件程序结构
Y
N
If
–
else
语句分支程序结构
..
Switch
语句4.3
8086/8088汇编语言程序设计基本方法程序的基本结构循环控制结构
N
Y
while
语句循环控制结构
N
Y
do
--while
语句4.3
8086/8088汇编语言程序设计基本方法程序的基本结构•••顺序程序设计
指令指针
IP
值线性增加,IP
=
IP
+
1条件程序设计
IP
值受标志位的影响而跳变
影响标志的指令
CMP、TEST、JXX循环程序设计
IP
值受计数器
CX
中的值不为零而循环
影响标志的指令
DEC4.3
8086/8088汇编语言程序设计基本方法基本程序设计堆栈段数据段代码段DEBUG直接编程初始化输
入运算处理转
换输
出返回DOS数值运算非数值运算4.3
8086/8088汇编语言程序设计基本方法程序的层次模块结构
源程序4.3
8086/8088汇编语言程序设计基本方法例
:程序输出显示:“
Welcome
!”,流程描述如下。定义堆栈段
定义数据段源程序模块结束指示段寄存器
初始化
显示输出字符串定义代码段自动返回
DOSSTACKSSEGMENT
STACK
DWSTACKS128
DUP(?)ENDSDATAS
SEGMENTSTRING
DB‘Welcome!’,13h,10h,’$’DATAS
ENDSCODES
SEGMENT
ASSUME
CS:CODE,DS:DATASSTART:
MOV
AX,
DATAS
MOV
DS,
AXLEA
DX,
STRINGMOV
AH,
09HINT
21HMOV
AX,
4C00HINT
21HCODES
ENDS
ENDSTART4.3
8086/8088汇编语言程序设计基本方法堆栈数据代码源程序模块结束例1:编程计算W=X+Y+24-Z。其中变量X、Y、Z均为32位数。4.3.1
顺序结构程序DATA
SEGMENT
X
DW
19,
86
Y
DW
3,
25
Z
DW
1987,
325
W
DW
2DUP(?)DATA
ENDSCODE
SEGMENT
ASSUME
CS:CODE,
DS:DATASTART:MOV
AX,
DATAMOV
DS,
AX
MOV
AX,
X
MOV
DX,
X+2ADD
AX,
YADC
DX,
Y+2ADD
AX,
24ADC
DX,
0SUB
AX,
ZSBB
DX,
Z+2MOV
W,
AXMOV
W+2,
DX
MOV
AH,
4CH
INT
21HCODE
ENDS
END
START例2:用变量D1及D2表示的两个8字节无符号数相加。4.3.1
顺序结构程序两数之和按从高到低依次放在SI,BX,CX,DX中。
DATA
SEGMENT
D1
DB
12H,34H,56H,78H,9AH,0ABH,0BCH,0CDH
D2
DB
0CDH,0BCH,0ABH,9AH,78H,56H,34H,12H
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:CODE,
DS:DATABG:MOV
AX,DATA;给DS赋段值MOV
DS,AX4.3.1
顺序结构程序
;将D1表示的偏移地址送DI;取操作数到寄存器中
;将D2表示的偏移地址送DI
LEA
DI,D1
MOV
DX,[DI]
MOV
CX,[DI+2]
MOV
BX,[DI+4]
MOV
SI,[DI+6]
LEA
DI,D2
ADD
DX,[DI]
ADC
CX,[DI+2]
ADC
BX,[DI+4]
ADC
SI,[DI+6]
MOV
AH,4CH
INT
21HCODE
ENDS
END
BGY
=
⎨
0例3:符号函数4.3.2
分支结构程序⎩⎧
1⎪⎪−1X
>
0
X
=
0
X
<
0设X为8位有符号数。
4.3.2
分支结构程序DATA
SEGMENT
X
DB
-18
Y
DB
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,DS:DATASTART:
MOV
AX,
DATAMOV
DS,
AXMOV
AL,
XCMP
AL,
0JGE
BIGRMOV
AL,
-1JMP
STOPBIGR:JE
STOPSTOP:MOV
AL,
1MOV
Y,
ALCODE
MOV
AH,
4CH
INT
21H
ENDSEND
START例4:比较变量D1和D2表示的两个有符号字数大小,将其中较大数据放在BX寄存器中。4.3.2
分支结构程序开始D1
BX结束BX≥D2?
Y
ND2
BXBEGIN:MOV
AX,
DATAMOV
DS,
AXMOV
BX,
D1CMP
BX,
D2JGE
NEXTMOV
BX,
D2;给DS赋段值
;若D1≥D2,则不交换,转NEXT
;若D1<D2,则交换NEXT:MOV
AH,
4CH
INT
21HCODE
ENDSEND
BEGIN4.3.2
分支结构程序DATASEGMENT;补码为FF85H;补码为FF88H
D1
D2DATA
DW
-123H
DW
-120HENDSCODE
SEGMENT
ASSUME
CS:CODE,DS:DATA例5:已知X、Y、Z为三个无符号16位二进制数,求三者中最大值,
送MAX单元。4.3.2
分支结构程序4.3.2
分支结构程序DATA
SEGMENTX
DW
180Y
DW
850Z
DW
350MAX
DW
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,DS:DATASTART:MOV
AX,
DATAMOV
DS,
AXMOV
AX,
XCMP
AX,
YJAE
XGYMOV
AX,
YXGY:CMP
AX,
ZJAE
GMAXMOV
AX,
ZGMAX:MOV
MAX,
AX
MOV
AH,
4CH
INT
21HCODE
ENDS
END
START4.3.2
分支结构程序例6:已知X、Y、Z为三个带符号8位二进制数,
求三者中中间值,送ARV单元。
开始
X
ALX≤Y?Y
ALAL
RV
结束YNX≤Z?NX≥Z?Y
ALNALYYY≥Z?
YY≥Z?
Y
NALN4.3.2
分支结构程序DATA
SEGMENTX
DB
-5
Y
DB
4
Z
DB
6
ARV
DB
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,
DS:DATASTART:MOV
AX,
DATAMOV
DS,
AXMOV
AL,
XCMP
AL,
YJL
XLYCMP
AL,
ZJLE
MARVMOV
AL,
YCMP
AL,
ZXLY:JGE
MARVMOV
AL,
ZJMP
MARV
CMP
AL,
ZJGE
MARVMOV
AL,
YCMP
AL,
ZJLE
MARVMOV
AL,
ZMARV:MOV
ARV,
AL
MOV
AH,
4CH
INT
21HCODE
ENDSEND
START4.3.3
循环结构程序例7:统计一个数据块中负数的个数,个数送
RS中。
开始
D1的EA
BX
0
DX
COUNT
CX结束YCX-1=0?
YDX
RSNBX≥0?
NDX加BX加4.3.3
循环结构程序DATA
SEGMENTD1
DB
-1,-3,
5,
6,
9,
-5COUNT
EQU
$-D1
RS
DW
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,
DS:DATASTART:
MOV
AX,
DATAMOV
DS,
AXBEGIN:MOV
AX,
DATAMOV
DS,
AXMOV
BX,
OFFSET
D1LOP1:MOV
CX,
COUNTMOV
DX,
0
MOV
AL,
[BX]CMP
AL,
0JGE
JUSINC
DXJUS:
INC
BXDEC
CXJNZ
LOP1MOV
RS,
DXMOV
AH,
4CHINT
21HCODEENDSEND
BEGIN例8:找出从无符号字节数据存储变量VAR开始存放的N个数中的最大数放在BH中。4.3.3
循环结构程序4.3.3
循环结构程序DSEGSEGMENTVARNDB
5,7,19H,23H,0A0HEQU
$-VARDSEGENDSCSEGSEGMENTASSUME
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度汽车自驾租赁协议5篇
- 2024年度连锁餐饮品牌特许经营合同
- 二零二四年采购代理合同详细条款
- 2024年度技术服务合同:某技术服务提供方与接受方之间的技术服务合同
- 2024年度电动车智能控制系统研发合同2篇
- 浙江省苍南县新希望学校联考2023-2024学年七年级上学期数学第二次学科素养检测题(解析版)-A4
- 2024年度充电桩技术转让与安装合同2篇
- 二零二四年度房屋买卖合同的产权过户
- 2024年度企业信息咨询服务保密协议
- 二零二四年度农村公交车载广告位租赁合同
- 代表怎样写好建议
- 矿山电工课程设计
- 2流动人员人事档案转递通知单存根
- 恒电位仪操作规程
- 数独骨灰级100题
- 全县蔬菜产业发展情况的调研报告 (3)
- 以体制机制改革激发创新活力-国家首批14家协同创新中心案例综述
- 车身部品件中英文对照表
- 威尼斯狂欢节长笛钢琴伴奏谱PierreAgricolaGeninC
- 炫彩招聘海报模板
- 8健康上网(五年级安全教育)讲课教案
评论
0/150
提交评论