没有合适的资源?快使用搜索试试~ 我知道了~
教材5.1、5.2、5.6、5.9作业参考解答1
需积分: 0 0 下载量 29 浏览量
2022-08-03
16:14:00
上传
评论
收藏 68KB PDF 举报
温馨提示
试读
4页
教材5.1、5.2、5.6、5.9作业参考解答1
资源详情
资源评论
资源推荐
【教材
5.1
】试编写一程序,将以变量 BUF 为首址的 100 个字节存储单元清零。
【解答】使用串操作指令实现这一功能。程序如下:
.386
DATA SEGMENT USE16
BUF DB a1,a2,….,a100
DATA ENDS
STACK SEGMENT USE16 STACK
DB 200H DUP(0)
STACK ENDS
CODE SEGMENT USE16
ASSUME CS:CODE, SS:STACK, ES: DATA
START: MOV AX,DATA
MOV ES, AX
LEA DI, BUF
MOV AL, 0
MOV CX,100
;前述语句均为为使用串操作指令做准备
REP STOSB ;
将
0
重复送入以
BUF
为首址的
100
个字节中
MOV AX,4C00H
INT 21H
CODE ENDS
END START
【教材
5.2
】设有一个数组 ai(i=1,2…,1000)存放在 A 为起始地址的字存储区中,
现要求将数组加以压缩,使其中的非 0 元素仍按序存放在 A 存储区中,而 0 元
素不再出现,试用串操作指令编写实现上述功能的程序。
【解答】
解题思路:若数组存放在以
ARR
为起始地址的存储区中,采用
SI,DI
两个数据
指针,一个取数,一个存数。逐一将
ARR
存储区中的数据取出,判断是否为
0
,若非
0
则存回去,否则就将该数过滤掉,继续取下一个数处理,直到所有的
数据处理完毕。
寄存器的分配:
SI
:取数指针;
DI
:存数指针;
AX
:存放临时取出的数据
CX:
数据的个数。
程序如下:
.386
DATA SEGMENT USE16
ARR DW a1, a2, 0, a3, 0,…, 0, a1000
DATA ENDS
STACK SEGMENT USE16 STACK
DB 200H DUP(0)
STACK ENDS
CODE SEGMENT USE16
小崔个人精进录
- 粉丝: 32
- 资源: 316
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0