太原理工硬件实验报告Word文档格式.docx

上传人:b****6 文档编号:15953489 上传时间:2022-11-17 格式:DOCX 页数:13 大小:17.94KB
下载 相关 举报
太原理工硬件实验报告Word文档格式.docx_第1页
第1页 / 共13页
太原理工硬件实验报告Word文档格式.docx_第2页
第2页 / 共13页
太原理工硬件实验报告Word文档格式.docx_第3页
第3页 / 共13页
太原理工硬件实验报告Word文档格式.docx_第4页
第4页 / 共13页
太原理工硬件实验报告Word文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

太原理工硬件实验报告Word文档格式.docx

《太原理工硬件实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《太原理工硬件实验报告Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

太原理工硬件实验报告Word文档格式.docx

4.结合实例程序掌握汇编语言程序上机过程,熟悉DEBUG程序中常用命令的使用。

要求预习汇编程序上机操作的全过程。

二、实验内容和原理

1.编写程序计算Z=(A+B)-(C-D),其中A=30H,B=20H,C=10H,D=05H均为字节单元无符号数。

2.设W、X、Y、Z、V均为16位字单元有符号数,编程计算W=(X*Y-50)/Z,将结果存入变量W,而余数存入变量W+2中。

(X为非零数,并假设X、Y、Z的值分别为20、10、15)

三、主要仪器设备

电脑,汇编语言

4、操作方法与实验步骤

实验一:

datasegment

Adb30h

Bdb20h

Cdb10h

Ddb05h

Zdb?

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

xorax,ax

moval,A

addal,B

subal,C

addal,D

movZ,al

movax,4ch

int21h

codeends

endstart

实验二:

Xdw20

Ydw10

Zdw15

Wdw?

?

movax,X

mulY

subax,50

divZ

movW,ax

五、实验数据记录和处理

六、实验结果与分析

第一个实验结果为AX里的值0045。

第二个实验结果为AX里的值000A,同时把值放入W中,余数在W+2中。

七、讨论、心得

这个实验帮我熟悉了汇编语言如何使用,虽然参考了书上的程序,但是我也从中学到了一些东西,懂得了自己去调试程序。

实验地点

指导教师

分支和循环程序实验

二、实验目的和要求

1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。

2.掌握分支程序的结构、单分支和多分支程序的设计方法。

3.了解循环程序的基本结构和控制循环的方法。

要求学生按教师指定题目进行汇编语言程序设计,并上机调试,以实现较复杂的程序设计。

1.已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元。

2.求10个学生成绩中的最高成绩,结果存入MAX字节单元中,已知成绩为字节型。

stacksegmentstack

db50DUP(0)

stackends

numdb2,5,6

maxdb?

data,ss:

stack

moval,num

cmpal,num[1]

jgenext1

moval,num[1]

next1:

cmpal,num[2]

jgenext2

moval,num[2]

next2:

movmax,al

movax,4c00h

numdb11,99,22,88,77,66,55,44,33,0

movsi,offsetnum

movcx,10

moval,[si]

AGAIN:

cmpal,[si]

jgenext

next:

INCsi

loopAGAIN

5、实验数据记录和处理

第一张图为实验1

第二张图为实验2

第一个实验三个数字为2,5,6,最后结果为AX里0006。

第二个实验十个数字为11,99,22,88,77,66,55,44,33,0,最后结果为AX里0063(16进制的99)。

这个实验还是参考了书上的例子,但是相对上一个实验添加了更多自己的东西,第二个实验比第一个要多考虑到循环的使用,保证AX里放的一直是最大值,则经过10次循环后可得出成绩的最大值。

综合程序设计实验

一、实验目的和要求

4.掌握通过DOS中断调用使用键盘和显示器的方法。

编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来,键盘输入的小写字母用大写字母显示出来。

汇编语言,电脑。

sinputdb'

$'

movax,data;

movds,ax;

若有数据段前两行需加上

movah,9

leadx,sinput

movah,1

cmpal,96

jgenext;

大于等于

addal,32

jmpdone

subal,32

done:

movdl,al

movah,2

movah,4ch

输入大写字母C时变为小写字母c,输入小写字母c时变成大写字母C。

这个实验我依旧想参照书上的例子,但是不知为何却跳过了输入字母的部分,于是我自己写了代码,经过努力终于能将输入大写字母时变为小写字母,输入小写字母时变成大写字母。

编写一个汇编程序,使得从键盘上输入十个以内的字符,以输入空格结束,然后按数字、字母和其它符号三类统计各自的个数,在屏幕上依次显示出统计结果。

完善下面的原程序

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE

START:

PUSHDS

SUBAX,AX

PUSHAX

MOVBH,0;

统计数字的个数

MOVBL,0;

统计字母的个数

MOVDH,0;

统计其它字符的个数

MOVCX,10

AA1:

CMPCX,0

JZSTOP;

输入字符超过10个

MOVAH,1

INT21H;

从键盘接收一个字符

CMPAL,20H

JZSTOP

CMPAL,’0’

JBCC1

CMPAL,’9’

JACC1

INCBH

自行写出比较是否为字母的情况

CC2:

INCDH

DECCX

STOP:

MOVDL,BH

MOVAH,02

INT21H

自行写出输出字母的个数

自行写出输出其它字符的个数

RET

Mainendp

Codeends

End

STACKSEGMENTSTACK

DB200DUP(0)

STACKENDS

DATASEGMENT

XDB'

0'

DATAENDS

CODE,DS:

DATA,SS:

STACK

MOVAX,DATA

MOVDS,AX

MOVBX,0

MOVDX,0

MOVCX,10

AA1:

CMPCX,0

JZSTOP;

CX里值为空则停止循环

INT21H;

从键盘接受一个字符

CMPAL,20H

输入空格则跳出

CMPAL,'

JBCC2;

<

0则记为特殊字符

9'

JACC1;

>

9则进入下一层判断

INCBH;

是数字

JMPNEXT1

CC1:

A'

A记为特殊字符

Z'

JBNEXT;

Z记为字母

a'

a记为特殊字符

z'

JACC2;

z记为特殊字符

NEXT:

INCBL;

是字母

CC2:

INCDH;

是特殊字符

NEXT1:

LOOPAA1;

判断下一个字符

STOP:

MOVAH,2

MOVDL,BH

ADDDL,X

输出数字字数

MOVDL,BL

输出字母字数

MOVDL,DH

输出特殊字符

MOVAX,4C00H

CODEENDS

ENDSTART

输入字符为ab123=然后输入空格,得出数字数为3字母数为2特殊字符为1。

试验中用到了多次条件判断JB是小于JA是大于,根据ASCLL码值表,来对输入的字符进行判断是哪个部分加1,输入空格结束,最后输出数字。

一开始让我觉得不解的是,若在STOP里去掉ADDDL,X,输出的数字是乱码,加上之后却输出了正常的数字,最后经过查阅,直接输出数字的话,机器会认为是ASCLL码值,而不是输出数字,所以加个0让其变为数字输出,

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

当前位置:首页 > 解决方案 > 解决方案

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

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