- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
燕山大学
《微型计算机原理及应用》作业
作业组别:第12组
班级:
姓名:
学号:
项目指导教师:
项目完成时间:2019年5月18日
目录
TOC \o 1-3 \h \z \u 1.第12组第1题 1
1.1题目和题目的分析描述及要求 1
1.2寄存器及主存等的应用说明 2
1.3程序框图 2
1.4详细程序 3
1.5程序调试的情况、程序运行的结果分析 4
1.5.1 输入“+”字符 4
1.5.1 输入“-”字符 5
1.5.1 输入“其他”字符 5
2.第12组第2题 6
2.1题目和题目的分析描述及要求 6
2.2寄存器及主存等的应用说明 6
2.3程序框图 7
2.4详细程序 7
2.5程序调试的情况、程序运行的结果分析 9
3.第12组第3题 10
3.1题目和题目的分析描述及要求 10
3.2寄存器及主存等的应用说明 10
3.3程序框图 11
3.4详细程序 11
3.5程序调试的情况、程序运行的结果分析 13
PAGE 2
1.第12组第1题
1.1题目和题目的分析描述及要求
从键盘输入一个字符,若输入的字符为‘+’,则将SOURCE处的十个字型有符号数(正数不变,负数变为相反数)传送至RESULT处,程序结束;若输入的字符为‘-’,则将SOURCE处的十个字型有符号数(负数不变,正数变为相反数)传送至RESULT处,程序结束;若输入的是其他字符,则在下一行显示‘ERROR!’,程序结束。
.model small
.stack
.data
source dw 1000h, 1100h, 1200h, 1300h, 0000h, 9500h, 8600h, 9700h, 0800h, 8900h
count equ ($-source) /2
result dw count dup(?)
error db 0Dh, 0Ah, error!$
.code
.startup
.exit
end
注:编程结果应为
SOURCE=1000H,1100H,1200H,1300H,0000H,9500H,8600H,9700h,0800h,8900h
RESULT=1000H,1100H,1200H,1300H,0000H,6B00H,7A00H,6900H,0800H,7700H;输入‘+’
RESULT=F000H,EF00H,EE00H,ED00H,0000H,9500H,8600H,9700H,F800H,8900H;输入‘-’
对问题的分析:由题目可知,若要达到目的结果,需要的基本算法:循环、无条件转移、有条件转移和比较等算法。
思路:输入字符判断是否为+,通过转移实现数据改变和储存,判断是否为-,符合转移实现数据改变和存储,判断其他字符,输出所要显示的语句。
1.2寄存器及主存等的应用说明
SI 源变址寄存器,作为SOURCE输出指针
DI目的变址寄存器,作为数据存入RESULT指针
DX数据寄存器,存储数据
CX计数器,存储最大循环次数
AX累加器,存储数据
AH存放数据
AL存放数据
SOURCE存放字符串
COUNT字符串中字符的个数
ERROR存放字符串
RESULT接收存储处理过的字符
1.3程序框图
图1—1 第一题程序流程图
1.4详细程序
.model small
.stack
.data
source dw 1000h, 1100h, 1200h, 1300h, 0000h, 9500h, 8600h, 9700h, 0800h, 8900h
count equ ($-source) /2
result dw count dup(?)
error db 0Dh, 0Ah, error!$
.code
start:
mov ax, @data;程序开始点
mov ds, ax;设置DS指向用户定义的数据段(@data表示数据段)
mov al,0h
mov ah,1;01号DOS功能调用
int 21h;输入一个ASCII码字符
lea di, result;执行时获得变量RESULT首地址存在DI当中
cmp al, 2bh;比较AL寄存器中数据与2BH的大小
jz parta;相等转移到PARTA
原创力文档


文档评论(0)