微型计算机原理及接口技术实验报告.docx

上传人:b****5 文档编号:7249980 上传时间:2023-01-22 格式:DOCX 页数:15 大小:193.03KB
下载 相关 举报
微型计算机原理及接口技术实验报告.docx_第1页
第1页 / 共15页
微型计算机原理及接口技术实验报告.docx_第2页
第2页 / 共15页
微型计算机原理及接口技术实验报告.docx_第3页
第3页 / 共15页
微型计算机原理及接口技术实验报告.docx_第4页
第4页 / 共15页
微型计算机原理及接口技术实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

微型计算机原理及接口技术实验报告.docx

《微型计算机原理及接口技术实验报告.docx》由会员分享,可在线阅读,更多相关《微型计算机原理及接口技术实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

微型计算机原理及接口技术实验报告.docx

微型计算机原理及接口技术实验报告

 

哈尔滨理工大学

微型计算机原理及接口技术实验报告

 

学院:

荣成学院

专业:

电气工程及其自动化

班级:

2010级自动化

学号:

1030120211

姓名:

严苛

指导老师:

陈琳

完成时间:

2012.5.06

实验一显示“HELLOWORLD!

1.实验目的

从最简单的汇编语言入门起,逐步掌握汇编语言的指令,汇编语言的编程技巧,熟悉汇编语言的编程环境,慢慢入门提升技能。

2.试验环境及设备

实验采用的是emu8086仿真软件,全软件操作,无硬件操作,操作方法简单,实验过程全用汇编指令编程。

3.实验内容

用汇编语言的指令编写程序,然后通过屏幕显示出“HELLOWORD!

”的字样出来,然后截图,写出实验报告。

试验程序代码如下:

OEG100H

MOVAX,0B800h

MOVDS,AX

MOV[52h],'H'

MOV[54h],'E'

MOV[56h],'L'

MOV[58h],'L'

MOV[5Ah],'O'//到这一步就把“HELLO”存入相应的地址中

PUSHCS//进栈操作

POPDS//出栈操作

MOVAX,0B800h

MOVES,AX

MOVES:

[5Eh],'W'

MOVES:

[60h],'O'

MOVES:

[62h],'R'

MOVES:

[64h],'L'

MOVES:

[66h],'D'

MOVES:

[68h],'!

'

HLT

4.实验结果截图如下:

5.实验结论

Emu8086功能比较大,就目前我自己水平要掌握汇编语言语言的编程技巧还是有一定难度,只得才考人家程序,自己再实践实践。

实验二数的求和

1.实验目的

用汇编语言编写程序实现两个数相加的功能,然后将结果用程序显示出来,最后写出实验报告。

2.试验环境及设备

实验采用的是emu8086仿真软件,全软件操作,无硬件操作,操作方法简单,实验过程全用汇编指令编程。

3实验内容

用汇编语言的指令编写程序,然后通过屏幕显示出计算结果,然后截图,写出实验报告。

试验程序代码如下:

ORG100H

MOVAH,07

MOVAL,08

ADDAL,AH

XORAH,AH

AAA

MOVDX,AX

MOVAH,0Eh

ORDH,30h

MOVAL,DH

INT10h

ORDL,30h

MOVAL,DL

INT10h

RET

END

4.实验结果截图如下:

5.实验结论

Emu8086功能比较大,就目前我自己水平要掌握汇编语言语言的编程技巧还是有一定难度,不过我相信多次实验就会让自己的水平有长进。

 

实验三计算数的阶乘

1.实验目的

用汇编语言编写程序实现一个数的阶乘的计算功能,然后将结果用程序显示出来,最后写出实验报告。

2.试验环境及设备

实验采用的是emu8086仿真软件,全软件操作,无硬件操作,操作方法简单,实验过程全用汇编指令编程。

3实验内容

用汇编语言的指令编写程序,然后通过屏幕显示出计算结果,然后截图,写出实验报告。

试验程序代码如下:

include'emu8086.inc'

ORG100h

start:

CALLPTHIS

DB13,10,'Enterthenumber:

',0

CALLscan_num

;factorialof0=1:

MOVAX,1

CMPCX,0

JEprint_result

;movethenumbertoBX:

;CXwillbeacounter:

MOVBX,CX

MOVAX,1

MOVBX,1

calc:

MULBX

CMPDX,0

JNEoverflow

INCBX

LOOPcalc

print_result:

;printresultinAX:

CALLPTHIS

DB13,10,'Factorial:

',0

CALLPRINT_NUM_UNS

JMPexit

overflow:

CALLPTHIS

DB13,10,'Theresultistoobig!

',13,10,'Usevaluesfrom0to8.',0

JMPstart

exit:

RET

DEFINE_SCAN_NUM

DEFINE_PRINT_NUM

DEFINE_PRINT_NUM_UNS

DEFINE_PTHIS

END

4.实验截图如下,输入数字为5,输出结果为120:

5.实验结论

实验的时候觉得实在是太难了,后来慢慢看懂了程序,但是现在我还是不能单独写出来,因为这个汇编语言实在是不像C语言那么容易,这个毕竟是以前的的语言,相比C语言来说没有C语言活跃,况且移植性也不好,所以感觉有点难度。

实验四DEBUG实验

1.实验目的

用汇编语言编写程序练习使用DEBUG功能,然后将结果用程序显示出来,最后写出实验报告。

2.实验环境及设备

微机电脑一台,DEBUG操作平台,全是软件操作,无硬件操作,操作方法简单,容易上手。

3.操作界面以及实验内容如下:

实验内容:

用R指令可以看到内存中各个寄存器的状态,以及内容,同时R可以修改内存中寄存器的内容,例如修改AX内容之前里面的内容是1212,在界面中输入RAX

我们修改成0013,然后再输入R查看则会看到AX的值已经被改变了,如下所示:

用D指令可以查看内存中的内容,例如输入D则会看到内存中的内容:

可以看到内存中的内容还是比较多的。

用A指令可以输入一段汇编语言在内存中执行,如图所示:

然后用D指令:

d0b19:

0100可以查看执行的结果:

这个里面就有刚才执行的程序内容。

用U指令可以把上述内存中的内容翻译成汇编命令:

输入U0b19:

0100结果如下:

然后用R指令找到0b19:

0100的地址,输入rCS0b19rIP0100找到之后然后用R指令可以查看内存中各个寄存器的内容:

4.实验结果及结论

此次试验没有采用EMU8086操作方式,而是在DEBUG的操作界面下进行的,这样我们可以很好的看到内存中各个寄存器的内容,同时也让加深了汇编语言的熟悉程度,其中的单步运行更能够看到汇编语言的运行过程,从另外的角度理解了程序的运行方式。

 

实验五比较数字的大小

1.实验目的

用汇编语言编写程序实现数的大小比较的功能,然后将结果用程序显示出来,最后写出实验报告。

2.试验环境及设备

实验采用的是emu8086仿真软件,全软件操作,无硬件操作,操作方法简单,实验过程全用汇编指令编程。

3.实验内容,用汇编语言的指令如下:

ORG100h

MOVAH,4

MOVAL,4

CMPAH,AL;比较得到两个数字相等

NOP

MOVAH,4

MOVAL,3

CMPAH,AL;比较得到4比3大

NOP

MOVAH,1

MOVAL,-5

CMPAH,AL

NOP

MOVAH,1

MOVAL,251

CMPAH,AL;比较得到1比251小

NOP

MOVAH,-3

MOVAL,-2

CMPAH,AL;比较得到-3比-2小

NOP

MOVAH,-2

MOVAL,-3

CMPAH,AL;比较得到-2比-3大

NOP

MOVAH,255

MOVAL,1

CMPAH,AL;比较得到255比1大

NOP

HLT

4.实验结果及结论

两数比较大小必然涉及到状态寄存器的标志位,比较大小时,若是两数相等,则ZF=1,此时两数相等,因为比较大小的时候是两个数相减的过程,只是最终结果不会保存下来,但是相应的状态标志位会发生改变;若是两数不相等,这种情况下,分两种情况,第一种两个无符号的数字比较,若CF=0,则表示没有借位,则是比较数的前面一个比后面大,若CF=1,表示有借位,后面一个数比前面的数字小,这样就可以比较出两个数字的大小,第二种情况,比较两个有符号的数字,若是状态标志位OF+SF=0,表示运算结果没有溢出,并且最后结果最高位为0,则前面的数比后面的数大,因为比较结果之后为正数,前面就比后面大,若是状态标志位为OF+SF=1,表示结果至少有溢出,或者是至少结果最高位为1,结果为负数,则是前面的数比后面的数字小。

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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