燕山大学微机原理作业试题.docx

上传人:b****6 文档编号:8035930 上传时间:2023-01-28 格式:DOCX 页数:8 大小:18.74KB
下载 相关 举报
燕山大学微机原理作业试题.docx_第1页
第1页 / 共8页
燕山大学微机原理作业试题.docx_第2页
第2页 / 共8页
燕山大学微机原理作业试题.docx_第3页
第3页 / 共8页
燕山大学微机原理作业试题.docx_第4页
第4页 / 共8页
燕山大学微机原理作业试题.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

燕山大学微机原理作业试题.docx

《燕山大学微机原理作业试题.docx》由会员分享,可在线阅读,更多相关《燕山大学微机原理作业试题.docx(8页珍藏版)》请在冰豆网上搜索。

燕山大学微机原理作业试题.docx

燕山大学微机原理作业试题

《微型计算机原理及应用》作业

作业组别:

第八组

班级:

12级机控2班

姓名:

吴东升

41

项目指导教师:

李艳文、张庆玲、赵玉勤、王志松

朱学军、王鑫、陈子明

项目完成时间:

2015年5月25日

作业一1

一、题目分析描述及要求1

二、寄存器及贮存的应用说明1

三、程序框图2

四、详细程序2

五、程序调试的情况、程序运行的结果的分析5

作业二5

一、题目的分析描述及要求5

二、寄存器及主存等的应用说明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

cmpal,'/'

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

adddi,2;di加2

loopfun0;结束循环

jmpnext;跳转NEXT

fun1:

movdx,0

movax,numa[si]

movbx,numb[si]

divbx;字除法,余数存在DX,商存在AX

movwordptrnumc[di],ax;商存在双字的低四位

adddi,2;di加2

movwordptrnumc[di],dx;余数存在双字的高四位

addsi,2;si加2

adddi,2;di加2

loopfun1;结束循环

jmpnext;跳转next

fun2:

;显示错误

movah,09h

movdx,offseterror

int21h

next:

.EXIT

END

五、程序调试的情况、程序运行的结果的分析

结果调试正确,能够正确的将数组之中的数依次做无符号乘法与无符号除法,并且运行结果正确,没有需要改进的地方。

作业二

一、题目的分析描述及要求

内存source存入十个字节数,要求其用十六进制数显示(包含H),每行显示一个。

二、寄存器及主存等的应用说明

在编写程序过程中,用到了AX,BX,CX,DX,SI五个寄存器。

AX常作为累加器,使用频率最高,用于算术运算、逻辑运算以及与外

设传送信息等。

BX常作为基址寄存器,用来存放存储器地址。

CX常作计数器,作为循环和串操作等指令中的隐含计数器。

DX常作为数据寄存器,常用来存放双字长数据的高16位或存放外设端口地址。

SI是源地址寄存器。

程序运行过程中,共使用了3种寻址方式。

立即数寻址,如movah,09h;

寄存器寻址,如movdl,bh;寄存器间接寻址,如movbh,[si]。

三、程序框图

四、详细程序

.MODELSMALL

.STACK

.DATA

SOURCEDB23H,19H,1AH,2AH,15H,3CH,81H,98H,1AH,2DH

COUNTEQU$-SOURCE

CRLFDB0DH,0AH,'$'

.CODE

.STARTUP

movcx,count;设置循环次数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

int21h

popbx;bx出栈

movbh,[si];[si]→bh

shlbh,cl;逻辑左移4位

shrbh,cl;逻辑右移4位即取字的十六进制第二位数

cmpbh,09h;bh与09h比较

jgfun0;大于跳转funo

jmpfun1;不大于跳转fun1

fun0:

addbh,37h;bh加37h字的十六进制第二位数对应的ASCII码

movdl,bh;DOS02号输出字符功能调用,设置入口参数

movah,02h

int21h

jmpnext

fun1:

addbh,30h;bh加30h字的十六进制第二位数对应的ASCII码

movdl,bh;DOS02号输出字符功能调用,设置入口参数

movah,02h

int21h

jmpnext

next:

movdl,48h;DOS02号输出字符功能调用,设置入口参数,输出H

movah,02h

int21h

movdx,offsetcrlf;回车换行

movah,09h

int21h

popcx;cx出栈

incsi;si+1

loopagain

.EXIT

END

五、程序的调试情况、程序运行的结果的分析

程序运行基本正确,能够将十个数据每行显示一个正确显示出来,不足需要改进处,设置循环次数为十次,但实际运行了二十次才终止程序。

作业三

一、题目的分析描述及要求

内存source中存放着16个十六进制的数组,另一个字变量L,要求将L作为逻辑尺寸对数组SOURCE进行如下处理:

若L的第i位为0,则数组的第i位数不变;若L的第i位为1,则数组的第i个数取反,处理结果存在result处。

二、寄存器及贮存等的应用说明

在编写程序过程中,用到了AX,BX,DX,SI四个寄存器。

AX常作为累加器,使用频率最高,用于算术运算、逻辑运算以及与外设传送信息等。

BX常作为基址寄存器,用来存放存储器地址。

DX常作为数据寄存器,常用来存放双字长数据的高16位或存放外设端口地址

SI是源地址寄存器。

DI是目的寄存器。

程序运行过程中,共使用了2种寻址方式。

立即数寻址,如movcl,10h;

寄存器间接寻址,如movbx,[si]。

三、程序框图

四、详细程序

.MODELSMALL

.STACK

.DATA

LDW1239H

SOURCEDW139CH,89C6H,5437H,8819H,5678H,1234H,3333H,4444H,20ABH,3947H,3855H,3744H,34DEH,5555H,6666H,7777H

COUNTEQU($-SOURCE)/2

RESULTDWCOUNTDUP()

.CODE

.STARTUP

movax,l;L存入AX

movcx,count;设置循环次数

movdl,0;dl清零

movsi,offsetsource;si取source的偏移地址

movdi,offsetresult;di取result的偏移地址

again:

movbx,[si];【si】存入BX

pushax;AXCX入栈保护

pushcx

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

jmpnext;等于0跳转next

fun0:

notbx;取反

next:

mov[di],bx;BX存入[di]

addsi,2;si加2

adddi,2;di加2

popcx;cxax出栈

popax

loopagain;结束循环

.EXIT

END

五、程序的调试情况、程序运行的结果的分析

程序运行正确,能够准确的判断出L的第i位的数值,并能能对数组的第i进行处理,结果保存入result中,达到了预期的目的,无需进行改进。

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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