南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx

上传人:b****4 文档编号:7530647 上传时间:2023-05-08 格式:DOCX 页数:28 大小:44.21KB
下载 相关 举报
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第1页
第1页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第2页
第2页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第3页
第3页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第4页
第4页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第5页
第5页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第6页
第6页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第7页
第7页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第8页
第8页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第9页
第9页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第10页
第10页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第11页
第11页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第12页
第12页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第13页
第13页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第14页
第14页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第15页
第15页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第16页
第16页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第17页
第17页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第18页
第18页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第19页
第19页 / 共28页
南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx

《南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx(28页珍藏版)》请在冰点文库上搜索。

南昌大学微型计算机原理与接口技术实验报告全Word文档下载推荐.docx

MOVDS,AX

MOVAL,X

ADDAL,Y

DAA

MOVZ,AL

RET

MAINENDP

CODEENDS

ENDSTART

先退出DOS系统。

先输入MASM12.ASM后,看有没有错误,如果有错误就返回去修改程序,反复调试,直到没有错误为止。

再输入LINK12.OBJ

再输入DEBUG12.exe

再按U。

设置好断点以后再输入G加断点地址。

实验结果

-u

1489:

00001EPUSHDS

00012BC0SUBAX,AX

000350PUSHAX

0004B88814MOVAX,1488

00078ED8MOVDS,AX

0009A00000MOVAL,[0000]

000CADDAL,[0001]

001027DAA

0011A20200MOV[0002],AL

0014CBRETF

0015D1E3SHLBX,1

0017D1E3SHLBX,1

00198B360406MOVSI,[0604]

001DEBA2JMPFFC1

001F90NOP

0020C746FC0000MOVWORDPTR[BP-04],0000

0025EB1FJMP0046

002790NOP

00288A4608MOVAL,[BP+08]

002B2AE4SUBAH,AH

002D50PUSHAX

002E8B5EFCMOVBX,[BP-04]

0031D1E3SHLBX,1

0033D1E3SHLBX,1

00358B7604MOVSI,[BP+04]

0038FF7002PUSH[BX+SI+02]

003BFF30PUSH[BX+SI]

003DE854FECALLFE94

-g0014

AX=1437BX=0000CX=0025DX=0000SP=FFFCBP=0000SI=0000DI=0000

DS=1488ES=1478SS=1488CS=1489IP=0014NVUPEIPLNZACPONC

-d1488:

0000

1488:

00001819370000000000-0000000000000000..7.............

00101E2BC050B888148E-D8A0000002060100.+.P............

002027A20200CBD1E3D1-E38B360406EBA290'

.........6.....

0030C746FC0000EB1F90-8A46082AE4508B5E.F.......F.*.P.^

0040FCD1E3D1E38B7604-FF7002FF30E854FE......v..p..0.T.

005083C406FF46FC8B46-063946FC72DA5E8B....F..F.9F.r.^.

0060E55DC390558BEC56-C45E0426807F0403.]..U..V.^.&

....

0070750726807F0A0074-37A1582739063622u.&

....t7.X'

9.6"

-q

实验心得:

这是我第一次在pc机上运用DOS系统来编程,有很多不懂,感觉很陌生。

在进入TC,和文件的保存,以及程序的编译都感觉很陌生。

但是有了这一次的接触,以后会更轻松。

这次主要是熟悉了汇编的环境,对于程序来说,只要熟悉了汇编语言的基本环境,本次程序比较简单。

运行的结果很顺利。

实验二、字符串的传送

一、实验目的:

1.掌握变量的基本使用方法。

2.掌据字符串的输入传送方法的使用。

3.掌握数据段的定义方式

二、实验内容

编程实现将X中的40个字符存储在Y中,并调试程序。

三、实验程序如下:

XDB40DUP(‘B’)

EXTRASEGMENT

YDB40DUP(?

EXTRAENDS

DATA,ES:

EXTRA

SUBAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAX,EXTRA

MOVES,AX

LEASI,X

LEADI,Y

CLD

MOVCX,40

REPMOVSB

RET

四、实验结果

查看数据段是输入D1488:

显示结果:

148C:

0009B88A14MOVAX,148A

000C8EC0MOVES,AX

000E8D360000LEASI,[0000]

00128D3E0000LEADI,[0000]

0016B91300MOVCX,0013

0019FCCLD

001AF3REPZ

001BA4MOVSB

001CCBRETF

001DDA5E8BFICOMPDWORDPTR[BP-75]

0020E55DINAX,5D

0022C3RET

002390NOP

002455PUSHBP

00258BECMOVBP,SP

002756PUSHSI

0028C45E04LESBX,[BP+04]

002B26ES:

002C807F0403CMPBYTEPTR[BX+04],03

00307507JNZ0039

003226ES:

0033807F0A00CMPBYTEPTR[BX+0A],00

00377437JZ0070

0039A15827MOVAX,[2758]

003CCMP[2236],AX

-g001c

AX=148ABX=0000CX=0000DX=0000SP=FFFCBP=0000SI=0013DI=0013

DS=1488ES=148ASS=1488CS=148CIP=001CNVUPEIPLZRNAPENC

0000504552534F4E414C-20434F4D50555445PERSONALCOMPUTE

00105224000000000000-0000000000000000R$..............

0020504552534F4E414C-20434F4D50555445PERSONALCOMPUTE

00305224000000000000-0000000000000000R$..............

00401E2BC050B888148E-D8B88A148EC08D36.+.P...........6

005000008D3E0000B913-00FCF3A4CBDA5E8B...>

..........^.

-d148a:

148A:

00201E2BC050B888148E-D8B88A148EC08D36.+.P...........6

003000008D3E0000B913-00FCF3A4CBDA5E8B...>

0040E55DC390558BEC56-C45E0426807F0403.]..U..V.^.&

0050750726807F0A0074-37A1582739063622u.&

00607214BE36228B1CFF-042BD8D1E3D1E38Br..6"

....+......

0070360406EB1090BE36-228B1CFF04D1E3D16......6"

.......

这次是做字符串传送的实验这套程序在课堂上讲过,所以编程序的时候也比较轻松。

在调试阶段要注意,本次调试我的断点设置出错,所以导致了输出结果的错误,这个问题以后应该注意,要知道自己所需要的断点在哪。

不能搞错,否则输出的结果就会有问题。

还有就是输入程序的时候要小心,不能按错键,如果按错了键,在编译的时候会错,要返回去tc中改程序,调试程序的时候耐心也是很重的

实验三、键盘输入与回显

实验目的:

1、熟悉DOS功能的9号功能,从键盘输入并在显示器上显示字符串

2、熟悉DOS功能调用指令INT21H

实验原理:

1、单字符输入

功能号1、7和8都可以接收键盘输入的单字符串,输入字符以ASCII码形式存放在累加器AL中。

其中7号和8号功能无回显。

2、字符串输入

输入字符串可以通过调用DOS功能的0AH号功能实现。

3、单宇符显示

在显示器上显示的内容都是字符形式,如果是数字,则一定是其对应的ASCII码。

要将一个字符串送到显示器显示,可调用DOS功能的2、6、9号功能实现。

其中2、6用于显示单个字符,功能9显示一个字符帀。

4、字符中显示

要在从示器上显示字符串,可调用DOS功能的9号功能,该功能要求被显示的字符串必须“$”以字符作为结束符,否则会引起屏幕混乱。

5、返回DOS

用4CH号功能返回DOS的程序段:

MOVAH,4CH

INT21H实验内容:

从键盘读入一串字符,在字符串尾插入一个“$”,并显示该字符。

实验程序如下:

BUFSIZEDB50

ACTLENDB?

CHARSDB50DUP(20H)

LEADX,BUFSIZE

MOVAH,0AH

INT21H

XORCX,CX

MOVCL,ACTLEN

MOVDX,OFFSETCHARS

MOVBX,DX

ADDBX,CX

MOVBYTEPTR[BX],'

$'

MOVAH,09H

MOVAH,02H

MOVDL,0AH

MOVDL,0DH

LEADX,CHARS

MOVAH,4CH

MAINENDP

CODEENDS

ENDSTART

实验结果:

随机输入一串不超过50个字符的字符串,按enter键之后,字符串会重新显示。

在屏幕上。

屏幕显示为:

1D08:

0004B8041DMOVAX,1D04

00098D160000LEADX,[0000]

000DB40AMOVAH,0A

000FCD21INT21

001133C9XORCX,CX

00138A0E0100MOVCL,[0001]

0017BA0200MOVDX,0002

001A8BDAMOVBX,DX

001C03D9ADDBX,CX

001EC60724MOVBYTEPTR[BX],24

-U

0021B409MOVAH,09

0023CD21INT21

0025B402MOVAH,02

0027B20AMOVDL,0A

0029CD21INT21

002BB20DMOVDL,0D

002DCD21INT21

002FB409MOVAH,09

00318D160200LEADX,[0002]

0035CD21INT21

0037B44CMOVAH,4C

0039CD21INT21

003B00740DADD[SI+0D],DH

003EFF360406PUSH[0604]

-G37

CHENLIHUAGDAKSG

AX=0924BX=0011CX=000FDX=0002SP=FFFCBP=0000SI=0000DI=0000

DS=1D04ES=1CF4SS=1D04CS=1D08IP=0037NVUPEIPLNZACPENC

-Q

实验心得体会:

本次试验因为还没有学过,对DOS系统的功能的调用很陌生。

所以本次编程的时候感觉很痛苦,编程的时候对着书看了很长时间,才慢慢的知道实验程序的编写。

在实验室悟了好长时间才悟懂DOS功能的调用显示和地址的灵活用法。

我忘了一“$”,所以电脑一直在那里响。

最后我加上“$”符号后,程序才顺利执行完。

这次实验做得很艰难,一开始有很多迷惑,经过实践之后迷惑就消除了。

实验四:

子程序设计(计算N!

1、通过调用求N!

的子程序求一个数的阶乘

2、掌握子程序的设计方法,调用方法,返回方法

3、学会一种算法:

递归调用

实验内容:

堆栈保护及递归算法,用递归算法计算5!

,实验程序如下:

NDW5

RESULTDW?

STACKSEGSEGMENT

DW128DUP(0)

TOSLABELWORD

STACKSEGENDS

ASSUMECS:

CODE,DS:

DATA,SS:

STACKSEG

START:

MOVAX,STACKSEG

MOVSS,AX

MOVSP,OFFSETTOS

SUBAX,AX

MOVAX,DATA

MOVDS,AX

MOVBX,N

PUSHBX

CALLFACT

POPRESULT

MAINEDNP

FACTPROCNEAR

PUSHBP

MOVBP,SP

MOVAX,[BP+6]

CMPAX,0

JNZFACT1

INCAX

JMPEXIT

FACT1:

DECAX

POPAX

MUL[BP+6]

EXIT:

MOV[BP+6],AX

POPBP

FACTENDP

查看数据段是输入D:

DS0

结果显示:

13E1:

0000B8D113MOVAX,13D1

00038ED0MOVSS,AX

0005BC0001MOVSP,0100

00081EPUSHDS

00092BC0SUBAX,AX

000B50PUSHAX

000CB8D013MOVAX,13D0

000F8ED8MOVDS,AX

00118B1E0000MOVBX,[0000]

001553PUSHBX

0016E80500CALL001E

00198F060200POP[0002]

001DCBRETF

001E50PUSHAX

001F55PUSHBP

00208BECMOVBP,SP

00228B4606MOVAX,[BP+06]

00253D0000CMPAX,0000

00287504JNZ002E

002A40INCAX

002BEB0AJMP0037

002D90NOP

002E48DECAX

002F50PUSHAX

0030E8EBFFCALL001E

003358POPAX

0034F76606MULWORDPTR[BP+06]

0037894606MOV[BP+06],AX

003A5DPOPBP

003B58POPAX

003CC3RET

003D7421JZ0060

003F8B9E72FFMOVBX,[BP+FF72]

-g001d

AX=13D0BX=0003CX=014DDX=0000SP=00FCBP=0000SI=0000DI=0000

DS=13D0ES=13C0SS=13D1CS=13E1IP=001DNVUPEIPLNZNAPENC

-d13d0:

13D0:

00000300780000000000-0000000000000000................

00100000000000000000-0000000000000000................

00200000000000000000-0000000000000000................

00300000000000000000-0000000000000000................

13

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2