- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 指令系统及汇编语言程序设计
2.1 8086(88)的寻址方式
2.1.1决定操作数地址的寻址方式
1. 立即寻址
2. 直接寻址
3. 寄存器寻址
4. 寄存器间接寻址
5. 寄存器相对寻址
6. 基址、变址寻址
7. 基址、变址、相对寻址
8. 隐含寻址
2.1.2决定转移地址的寻址方式
1. 段内转移
2. 段间转移
2.2 8086(88)的指令系统
2.2.1传送指令
1. MOVOPRD1,OPRD2
图2.1数据传送
2. 交换指令
3. 地址传送指令
4. 堆栈操作指令
图2.2堆栈操作
5. 字节、字转换指令
6. 标志寄存器传送指令
7. XLAT换码指令
2.2.2算术指令
图2.3加减运算操作数之间的关系
1. 加法指令
2. 减法指令
3. 乘法指令
4. 除法指令
5. 调整指令
2.2.3逻辑运算和移位指令
1. 逻辑运算指令
2. 移位指令
图2.4 SAL/SHL操作
图2.5 SAR操作
图2.6 SHR操作
3. 循环移位指令
图2.7循环移位指令
2.2.4串操作指令
1. MOVS/MOVSB/MOVSW
2. CMPS/CMPSB/CMPSW
3. SCAS/SCASB/SCASW
4. LODS/LODSB/LODSW
5. STOS/STOSB/STOSW
6. REP
7. REPE/REPNE
2.2.5程序控制指令
1. 无条件转移、子程序调用和返回指令
2. 条件转移指令
3. 循环控制指令
4. 软中断指令及中断返回指令
2.2.6处理器控制指令
1. 标志位操作指令
2. 外部同步指令
2.2.7输入输出指令
1. 直接寻址
2. 寄存器间接寻址
2.3汇编语言
2.3.1汇编语言的语句格式
1. 标号
2. 指令助记符
3. 操作数
4. 注解
2.3.2常数
2.3.3伪指令
1. 定义数据伪指令
2. 符号定义伪指令EQU
3. 段定义伪指令SEGMENT和ENDS
4. 定义段寄存器伪指令ASSUME
5. 定义过程的伪指令PROC和ENDP
6. 模块间通信的伪指令PUBLIC、EXTRN
7. 条件伪指令
8. 宏命令伪指令
9. 汇编结束伪指令END
2.3.4汇编语言的运算符
1. 取值运算符SEG和OFFSET
2. 属性运算符
2.3.5汇编语言源程序的结构
2.4汇编语言程序设计
2.4.1程序设计概述
2.4.2程序设计的基本方法
1. 顺序程序
2. 分支程序
图2.8分支程序的基本结构
图2.9选择程序结构
3. 循环程序
图2.10循环控制的两种结构形式
4. 子程序
图2.11多层子程序嵌套
5. 表
6. DOS的功能调用
2.4.3汇编语言程序举例
2.4.4汇编语言程序的查错与调试
1. 编写源程序
2. 源程序输入微型机
3. 汇编
4. 连接
5. 调试
图2.12程序的查错与调试过程
习题
2.1判断下列指令的寻址方式:
MOVAX,00H
SUBAX,AX
MOVAX,\[BX\]
ADDAX,TABLE
MOVAL,ARAY1\[SI\]
MOVAX,\[BX+6\]
2.2若1KB的数据存放在TABLE以下,试编程序将该数据搬到NEST之下。
2.3试编写10个字(16位二进制数)之和的程序。
2.4某16位二进制数,放在DATA连续两单元中,试编程序求其平方根和余数,将其分别存于ANS和REMAIN中。
2.5试编程序将BUFFER中的一个8位二进制数,转换为ASCII码,并按位数高低顺序存放在ANSWER之下。
2.6在DATA1之下顺序存放着以ASCII码表示的千位数,现欲将其转换成二进制数,试编程序。
2.7试编程序将MOLT中的一个8位二进制数乘以20,乘积放在ANS单元及其下一个单元中(用3种方法来完成)。
2.8在DATA之下存放100个无符号8位数,试编程序找出其中最大的数并将其放在KVFF中。
2.9在题2.8中,若要求将数据按大小顺序,试编程序。
2.10在BVFF单元中有一个BCD数A,试写程序,计算Y,结果送DES单元。其中,
Y=3AA20
A—2020≤A60
80 A≥60
2.11在当前数据段(DS决定),偏移地址为DATAB开始的顺序80个单元中,存放着某班80个同学某门考试的成绩。
① 编写程序统计≥90分、80~89分、70~79分、60~69分、60分的人数各为多少,并将结果放在同一数据段、偏移地址为BTRX开始的顺序单元中。
② 试编程序,求该班这门课的平均成绩(整数部分),并放在该数据段的LEVT单元中。
2.12在当前数据段(DS所决定)的DAT1和DAT2分别存放两个符号的8位数,现欲求两数差的绝对值,并将其放在DAT3中,试编程序。
2.13试编程序将内
文档评论(0)