燕山大学微机原理作业试题Word文件下载.docx
- 文档编号:21172195
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:8
- 大小:18.74KB
燕山大学微机原理作业试题Word文件下载.docx
《燕山大学微机原理作业试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《燕山大学微机原理作业试题Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
二、寄存器及主存等的应用说明5
三、程序框图6
四、详细程序6
五、程序的调试情况、程序运行的结果的分析9
作业三9
一、题目的分析描述及要求9
二、寄存器及贮存等的应用说明9
三、程序框图10
四、详细程序11
五、程序的调试情况、程序运行的结果的分析13
作业一
一、题目分析描述及要求
输入“*”,字变量NUMA中的数分别与字变量NUMB中的数无符号相乘,结果存入双字变量NUMC。
输入“/”,NUMA中的数分别与NUMB中的数无符号相除,结果存入双字变量NUMC(商在前,余数在后)。
二、寄存器及贮存的应用说明
在编写程序过程中,用到了AX,BX,DX,SI四个寄存器。
AX常作为累加器,使用频率最高,用于算术运算、逻辑运算以及与外
设传送信息等。
BX常作为基址寄存器,用来存放存储器地址。
DX常作为数据寄存器,常用来存放双字长数据的高16位或存放外设端口地址
SI是源地址寄存器。
DI是目的寄存器。
程序运行过程中,共使用了3种寻址方式。
立即数寻址,如movah,09h;
寄存器寻址,如mov,bl,al;
寄存器间接寻址,如movax,wordptrnuma[si]。
三、程序框图
四、详细程序
.MODELSMALL
.STACK
.DATA
NUMADW1010H,2011H,3012H,4013H,5060H
COUNTEQU($-NUMA)/2
NUMBDW0090H,0081H,0066H,003AH,004CH
NUMCDDCOUNTDUP()
ERRORDB0DH,0AH,'
ERROR!
$'
.CODE
.STARTUP
movsi,0
movdi,0
movcx,count;
设置循环次数
movah,01h;
调用DOS01号功能输入一个字符
int21h
cmpal,'
*'
;
若为*跳转fun0
jefun0
/'
jefun1;
若为/跳转fun1
jmpfun2;
都不是跳转fun2
fun0:
movax,numa[si]
movbx,numb[si]
mulbx;
字乘法高位存在DX,低位存在AX
movwordptrnumc[di],ax;
低位存在双字的第四位
adddi,2;
di加2
movwordptrnumc[di],dx;
高位存在双字的高字节
addsi,2;
si加2
loopfun0;
结束循环
jmpnext;
跳转NEXT
fun1:
movdx,0
movax,numa[si]
divbx;
字除法,余数存在DX,商存在AX
商存在双字的低四位
余数存在双字的高四位
di加2
loopfun1;
跳转next
fun2:
显示错误
movah,09h
movdx,offseterror
next:
.EXIT
END
五、程序调试的情况、程序运行的结果的分析
结果调试正确,能够正确的将数组之中的数依次做无符号乘法与无符号除法,并且运行结果正确,没有需要改进的地方。
作业二
一、题目的分析描述及要求
内存source存入十个字节数,要求其用十六进制数显示(包含H),每行显示一个。
二、寄存器及主存等的应用说明
在编写程序过程中,用到了AX,BX,CX,DX,SI五个寄存器。
CX常作计数器,作为循环和串操作等指令中的隐含计数器。
DX常作为数据寄存器,常用来存放双字长数据的高16位或存放外设端口地址。
寄存器寻址,如movdl,bh;
寄存器间接寻址,如movbh,[si]。
SOURCEDB23H,19H,1AH,2AH,15H,3CH,81H,98H,1AH,2DH
COUNTEQU$-SOURCE
CRLFDB0DH,0AH,'
设置循环次数cx=10
movsi,offsetsource;
si取source的偏移地址
again:
movbh,[si];
[si]→bh
pushbx;
bxcx入栈保护
pushcx
movcl,4;
cl=4
shrbh,cl;
逻辑右移4位即取字的十六进制第一位数
addbh,30h;
字的十六进制第一位数对应的ASCII码
movdl,bh;
DOS02号输出字符功能调用,设置入口参数
movah,02h
popbx;
bx出栈
shlbh,cl;
逻辑左移4位
逻辑右移4位即取字的十六进制第二位数
cmpbh,09h;
bh与09h比较
jgfun0;
大于跳转funo
jmpfun1;
不大于跳转fun1
addbh,37h;
bh加37h字的十六进制第二位数对应的ASCII码
movah,02h
jmpnext
bh加30h字的十六进制第二位数对应的ASCII码
movdl,48h;
DOS02号输出字符功能调用,设置入口参数,输出H
int21h
movdx,offsetcrlf;
回车换行
popcx;
cx出栈
incsi;
si+1
loopagain
五、程序的调试情况、程序运行的结果的分析
程序运行基本正确,能够将十个数据每行显示一个正确显示出来,不足需要改进处,设置循环次数为十次,但实际运行了二十次才终止程序。
作业三
内存source中存放着16个十六进制的数组,另一个字变量L,要求将L作为逻辑尺寸对数组SOURCE进行如下处理:
若L的第i位为0,则数组的第i位数不变;
若L的第i位为1,则数组的第i个数取反,处理结果存在result处。
二、寄存器及贮存等的应用说明
AX常作为累加器,使用频率最高,用于算术运算、逻辑运算以及与外设传送信息等。
程序运行过程中,共使用了2种寻址方式。
立即数寻址,如movcl,10h;
寄存器间接寻址,如movbx,[si]。
LDW1239H
SOURCEDW139CH,89C6H,5437H,8819H,5678H,1234H,3333H,4444H,20ABH,3947H,3855H,3744H,34DEH,5555H,6666H,7777H
COUNTEQU($-SOURCE)/2
RESULTDWCOUNTDUP()
movax,l;
L存入AX
movdl,0;
dl清零
si取source的偏移地址
movdi,offsetresult;
di取result的偏移地址
again:
movbx,[si];
【si】存入BX
pushax;
AXCX入栈保护
movcl,10h;
cl=10h
incdl;
dl加一
subcl,dl;
cl减DL
shlax,cl;
逻辑左移cl位
movcl,0fh;
cl=15
shrax,cl;
逻辑右移15位
cmpax,01h;
AX与1比较
jefun0;
等于1跳转fun0
等于0跳转next
notbx;
取反
mov[di],bx;
BX存入[di]
cxax出栈
popax
loopagain;
程序运行正确,能够准确的判断出L的第i位的数值,并能能对数组的第i进行处理,结果保存入result中,达到了预期的目的,无需进行改进。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 燕山 大学 微机 原理 作业 试题