《微型计算机原理及应用》作业Word文档下载推荐.docx

上传人:b****1 文档编号:13924460 上传时间:2022-10-15 格式:DOCX 页数:12 大小:198.44KB
下载 相关 举报
《微型计算机原理及应用》作业Word文档下载推荐.docx_第1页
第1页 / 共12页
《微型计算机原理及应用》作业Word文档下载推荐.docx_第2页
第2页 / 共12页
《微型计算机原理及应用》作业Word文档下载推荐.docx_第3页
第3页 / 共12页
《微型计算机原理及应用》作业Word文档下载推荐.docx_第4页
第4页 / 共12页
《微型计算机原理及应用》作业Word文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

《微型计算机原理及应用》作业Word文档下载推荐.docx

《《微型计算机原理及应用》作业Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《微型计算机原理及应用》作业Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

《微型计算机原理及应用》作业Word文档下载推荐.docx

3.3详细程序9

3.4程序调试情况12

四.体会和建议12

一.题24.1问题描述

内存source处存放着20个ASCII码字符,从键盘输入一个字符,若输入的是为‘a’-‘z’之间的字符(例如g),则将source处的20个ASCII码字符传送至result处,传送时要求将‘a’-‘z’之间的字符转换成大写字符,而其他字符不变,并统计与输入字符(‘g’)相同的字符的个数,存入变量num中,程序结束;

若输入的是其他字符,则在下一行显示‘ERROR!

’,程序结束。

1.1寄存器及主存的应用说明

内存:

source处存放待检测的字符

count处存放字符数量

result处存放修改过的新的字符

num处存放与输入字符相同的字符的个数

error处存放回车换行及字符串ERROR!

寄存器:

bx用于使result指向的地址每次加1以存放下一个字符

al用于存放输入的字符

si用于存放地址

dl用于存放si指向的字符

cx用于计数

1.2程序框图(见第四页)

1.3详细程序

.modelsmall

.stack

.data

sourcedb'

abcdgggg456789AB+-*/'

countequ$-source

resultdbcountdup(?

numdb0

errordb0dh,0ah,'

ERROR!

$'

.code

.startup

xorbx,bx;

bx清零

movah,1;

输入一个字符

int21h

cmpal,'

a'

;

输入的字符与a比较,如果比a

jbdone;

小或比z大则跳转至done

z'

jadone

leasi,source;

把首地址赋值给si

movcx,count;

cx赋值循环次数

again:

movdl,[si];

si指向的字符赋值给dl

cmpdl,'

若此字符比a小或比z大,则跳

jbone;

转至one

jaone

cmpdl,al;

若此字符在a-z之间,则与输入

jnztwo;

的字符比较,不相等则跳至two

addnum,1;

若相等则num加1

two:

subdl,20h;

将小写字符转换成大写字符

one:

movresult[bx],dl;

将此字符存入result处

incbx;

地址加1以存放下一个字符

incsi;

指向下一个待检测字符

loopagain;

循环

jmpthree;

跳转至three

done:

movdl,0dh;

回车,换行,显示ERROR!

movah,2

int21h

movdl,0ah

movdx,offseterror

movah,9

three:

;

结束

.exit

end

1.4程序调试情况

第一次错误:

语句one编写如下,

movresult,dl

incresult

incsi

loopagain

原以为incresult会使地址加1,结果是result存储的值加1,导致第一个数加了20而其他数值没变,运行结果如图:

其中source和result有20个字符,由于图片清晰度问题,所以没有全部截图出来

第二次错误:

刚开始给cx赋值为20,而实际应该赋值count,如果source存入21个字符,运行结果将只有20个字符。

正确的运行结果如下图:

二.题24.2问题描述

内存中source处存放着一个以0为结束标志的ASCII码字符串,该字符串表示的是一个字型有符号整数。

请将其转换为对应的有符号整数,存放到自变量result处。

转换过程中,若遇到‘0’-‘9’及‘+’,‘-’以为的字符,或者转换结果超过了字型有符号数的范围(-32768-+32767),则显示‘ERROR!

2.1寄存器及主存的应用说明

内存

source处存放待检测字符

result处存放转换后的字型

error处存放字符串

bx存放取出的数值

cx存放标志数值

si存放地址

2.2程序框图(见第八页)

2.3详细程序

-12345'

0

resultdw?

errordb'

.startup

首地址赋值给si

bx,dx分别清零

xordx,dx

cmpbyteptr[si],0;

第一个字符是0,则跳转至done

jzdone

cmpbyteptr[si],'

-'

;

若不是0则与‘-’比较

movcx,-1;

cx赋值-1作为标志

jzone;

跳转至one

+'

与‘+’比较

movcx,0;

cx赋值0作为标志

cmpbyteptr[si],31h;

若既不是‘-’也不是‘+’则

jbfour;

与1比较,比1小,跳至four

cmpbyteptr[si],39h;

若比1大,则与9比较,比9

jafour;

大,则跳转至four

decsi;

第一个字符为数字,则si减1

incsi;

si加1指向下一个字符

与0比较,相等则结束

jztwo

shlbx,1;

以下5句将bx通过移位乘10

movdx,bx;

但第一次bx为0

shlbx,1

addbx,dx

movax,[si];

si指向的数赋值给ax

xorah,ah;

只保留低位

subax,30h;

ASCII码减30取出第一个数

addbx,ax;

赋值给bx

jmpone

cmpcx,-1;

cx与-1比较

jnzfive;

不相等跳转至five

cmpbx,32768;

cx=-1,则bx与32768比较

比32768大则跳转至four

jmpnega;

否则跳转至nega

five:

cmpbx,32767;

cx=0,则bx与32767比较

大于32767则跳转至four

否则跳转至three

nega:

notbx;

bx取反

addbx,1;

b加1

movresult,bx;

bx赋值给result

jmpdone;

跳转至done

four:

movdx,offseterror;

显示错误

movah,9

End

2.4程序调试状况

第一次错误:

寄存器ax的高8位没有清零,使ax存储的数据不正确,结果出现错误。

与1和9比较大小时应用它们的ASCII码31h和39h,而不是直

接用1和9。

正确运行结果截图:

三.题24.3问题描述

内存中source处存放着一个以0为结束标志的ASCII码字符串。

请统计该字符串中字母,数字,空格和其他字符的个数,统计结果分别存放到字节型变量result处。

3.1寄存器及主存的应用说明

source处存放待检测字符串

Result处存放各种字符数量

si存储地址

cl存放si指向的字符

3.2程序框图(见第十一页)

3.3详细程序

ABCabc123+-*/'

resultdb4dup(0)

leasi,source-1;

si赋值source的首地址减1

incsi;

地址加1指向下一个字符

movcl,[si];

将指向的字符赋值给cl

cmpcl,0;

与0比较,如果是0,结束

cmpcl,2BH;

分别于加减乘除比较,如果是其中的

jzothers;

一个字符,跳转到others

cmpcl,2DH

jzothers

cmpcl,2AH

cmpcl,2FH

cmpcl,20h;

与空格比较,相等则跳转到space

jzspace

cmpcl,39h;

以上字符都不是则与9比较,

jbenum;

小于等于9则跳转到num

jmpwords;

如果以上都不是则为字母,跳转到words

others:

add[result+3],1;

其他字符数量加1并存到result第四个字节处

jmpagain;

继续执行搜索下一个字符

space:

add[result+2],1;

空格数量加1并存到result第三个字节处

num:

add[result+1],1;

数字数量加1并存到result第二个字节处

继续执行并搜索下一个字符

words:

add[result],1;

字母数量加1并存到result第一个字节处

3.4程序调试情况

错误:

最后的一段程序没有写jmpa

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1