微机实验报告最新Word格式文档下载.docx

上传人:b****3 文档编号:16596087 上传时间:2022-11-24 格式:DOCX 页数:17 大小:146.91KB
下载 相关 举报
微机实验报告最新Word格式文档下载.docx_第1页
第1页 / 共17页
微机实验报告最新Word格式文档下载.docx_第2页
第2页 / 共17页
微机实验报告最新Word格式文档下载.docx_第3页
第3页 / 共17页
微机实验报告最新Word格式文档下载.docx_第4页
第4页 / 共17页
微机实验报告最新Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

微机实验报告最新Word格式文档下载.docx

《微机实验报告最新Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机实验报告最新Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

微机实验报告最新Word格式文档下载.docx

\masm5>

masmone1.asm经过汇编后源程序为:

0WarningErrors

0SevereErrors。

即为汇编通过

3).用连接程序link产生执行文件exe

linkone1.obj

4).用DEBUG调试程序调用格式如下:

F:

debugone1.exe

此时,DEBUG已将执行程序装入内存,可直接用g命令运行程序。

-g

Match.对程序进行反汇编:

-u

0B9B:

0000B89A0BMOVAX,0B9A

00038ED8MOVDS,AX

00058B260400MOVSP,[0004]

00098BECMOVBP,SP

000BBE0000MOVSI,0000

000E8B840000MOVAX,[SI+0000]

00128B9C0200MOVBX,[SI+0002]

001650

PUSH

AX

001753

BX

001858

POP

00195B

001AB44C

MOV

AH,4C

001CCD21

INT

21

001EF6EB

IMUL

BL

反汇编后,与源程序的要求相符合

堆栈指令运行前AX,BX的内容

-g16

BP=2000

UPEIPL

AX=3000BX=5000CX=002EDX=0000SP=2000

SI=0000DI=0000

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=0016NVNZNAPONC

001650PUSHAX

堆栈指令执行后ZX,BX的值如下所示:

-g1A

AX=5000BX=3000CX=002EDX=0000SP=2000BP=2000

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=001ANVUPEIPL

NZNAPONC

001AB44CMOVAH,4C

由以上可知:

AX与BX的内容得到了交换

5)汇编以及调试中所遇到的问题:

1.MOv语句比较容易出现错误対源程序进行汇编时无法通过,编程序时应该多注意语法错误。

2.使用debug进行调试时,忘记让程序只运行到断点之前,导致查找出来的AX与BX的内容分并没有进行交换,还是保持原来的值不变,修正后在堆栈指令前先查出AX与BX的值,堆栈后在次查询Ax与BX的值,对比之后AX确实与BX的内容交换了。

实验二内存操作数及寻址方法

1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。

3、掌握简单指令的执行过程。

二.实验内容:

1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;

请编一程序段将AX和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间存储单元,用字处理程序编辑程序,用masm.exe和link.exe对源程序进行汇编程和连接,用DEBUG调试程序。

程序步骤与实验一的第六个题目一致

2、用masm和link对以下程序进行汇编和连接,调试程序在DEBUG调试程序状态下进行。

用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。

ORG0300H

ADB12H,23H,34H,45H,56H,67H,78H,89H,9AH

MOVAX,DATA

MOVAX,BX

MOVAX,0300H

MOVAX,[0300H]

MOVAX,[BX]

MOVSI,2

MOVAX,0001[BX]

MOVAX,[BX][SI]

MOVAX,0001[BX][SI]

OBJ,命令格式如下:

1.在DOS环境下,用汇编程序MASM对源文件汇编产生目标文件

masmone1.asm

经过汇编后源程序为:

即为汇编通过

2.用连接程序link产生执行文件exe

3.用debug调试程序:

Match.

4.对程序进行反汇编:

180E:

0000B8DD17

AX,17DD

00038ED8

DS,AX

00058BC3

AX,BX

0007B80003

AX,0300

000AB80003

000D8B07

AX,[BX]

000FBE0200

SI,0002

00128B4701

AX,[BX+01]

00158B00

AX,[BX+SI]

00178B4001

AX,[BX+SI+

001EC406FF76

LES

AX,[76FF]

由第五行:

180E:

000AB80003MOVAX,0300并没有执行源程序中的:

MOVAX,[0300H]指令,所以执行后AX的结果为0000应该对程序进行修改修改后的原程序如下:

DATASEGMENTORG0300HADB12H,23H,34H,45H,56H,67H,78H,89H,9AHDATAENDSPROGNAMSEGMENT

MOVDX,0300H

MOVBX,DX

0005BA0003

DX,0300

00088BDA

BX,DX

000A8B07

000CBE0200

000F8B4701

00128B00

00148B4001

0017B44C

0019CD21

INT21

001B057183

ADD

AX,8371

使用单步执行方法分析每条指令源地址的形成过程:

将数据段的首地址存入寄存器AX中

-t

AX=17DDBX=0000CX=032BDX=0000SP=0000BP=0000SI=0000DI=0000DS=17CDES=17CDSS=17DDCS=180EIP=0003NVUPEIPLNZNAPONC180E:

把AX的值作为DS的首地址

AX=17DDBX=0000CX=032BDX=0000SP=0000BP=0000SI=0000DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=0005NVUPEIPLNZNAPONC180E:

0005BA0003MOVDX,0300

AX=17DDBX=0000CX=032BDX=0300SP=0000BP=0000SI=0000DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=0008NVUPEIPLNZNAPONC180E:

00088BDAMOVBX,DX

AX=17DDBX=0300CX=032BDX=0300SP=0000BP=0000SI=0000DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=000ANVUPEIPLNZNAPONC180E:

000A8B07MOVAX,[BX]

DS:

0300=2312

将偏移量BX存到寄存器AX中

AX=2312BX=0300CX=032BDX=0300SP=0000BP=0000SI=0000DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=000CNVUPEIPLNZNAPONC180E:

000CBE0200MOVSI,0002

将0002赋值给SI

AX=2312BX=0300CX=032BDX=0300SP=0000BP=0000SI=0002DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=000FNVUPEIPLNZNAPONC180E:

000F8B4701MOVAX,[BX+01]

0301=3423

AX=3423BX=0300CX=032BDX=0300SP=0000BP=0000SI=0002DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=0012NVUPEIPLNZNAPONC180E:

00128B00MOVAX,[BX+SI]

0302=4534

AX=4534BX=0300CX=032BDX=0300SP=0000BP=0000SI=0002DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=0014NVUPEIPLNZNAPONC180E:

00148B4001MOVAX,[BX+SI+01]

0303=5645

AX=5645BX=0300CX=032BDX=0300SP=0000BP=0000SI=0002DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=0017NVUPEIPLNZNAPONC

MOVAH,4C;

系统功能调用的功能号:

4C功能:

带返回码结束

AX=4C45BX=0300CX=032BDX=0300SP=0000BP=0000SI=0002DI=0000DS=17DDES=17CDSS=17DDCS=180EIP=0019NVUPEIPLNZNAPONC180E:

0019CD21INT21

段中指;

有以上可知经过调试后AX=5645H

实验三算术运算指令

一.实验目的

1.学习算术运算指令的用法。

2•熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

二.实验内容

编写三个完整的汇编语言源程序,完成以下计算。

其中X、Y、Z、R、W均为存放16位带符号数单元的地址。

⑴ZJW+(Z—X)

(2)ZJW—(X+6)—(R+9)

(3)ZJ(W*X)/(Y+6),RJ余数

三.实验操作步骤:

(1)ZJW+(Z-X)

1)实验的源程序如下:

XDW2567H

WDW5841H

ZDW36C2H

DATA

MOVAX,X

SUB[Z],AX;

(Z—X)

;

W+(Z-X)

MOVAX,[W]ADC[Z],AX

INT21HPROGNAMENDS

2)对程序进行反汇编:

001BFE8946F6DECBYTEPTR[BX+DI+F646]

001FEB06JMP0027反汇编后,以上结果可以看出与源程序相符合查询:

-d0b9a:

0000,000f

0B9A:

000067254158C2360000-0000000000000000g%AX.6

执行到断点前

-gf

AX=2567BX=0000CX=002ADX=0000SP=0000BP=0000SI=0000DI=0000

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=000FNVUPEIPLNZACPONC0B9B:

000FA10200MOVAX,[0002]DS:

0002=5841

查询执行后的结果:

0000672541585B110000-0000000000000000g%AX[

36c2H-2567H=115BH满足题意得到Z-X的值

-t2

DI=0000

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=0012NVUPEIPLNZACPONC

0012ADC[0004],AXDS:

0004=115B

AX=5841BX=0000CX=002ADX=0000SP=0000BP=0000SI=0000DI=0000

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=0016NVUPEIPLNZNAPENC

0016B44CMOVAH,4C

0000,000f

0000672541589C690000-0000000000000000g%AX.i

115BH+5841H=699CH得到W+(Z-X)的值

(2)ZJW—(X+6)—(R+9)

XDW2674H

WDW7046H

RDW310CH

ZDW?

MOVAX,DATAMOVDS,AXMOVSI,0ADC[X],0006HADC[R],0009HMOVAX,[X]SUB[W],AXMOVAX,[R]SUB[W],AXMOVAX,[W]MOV[Z],AXMOVAH,4CH

MOVAX,0B9A

MOVSI,0000

WORDPTR[0000],+06

PROGNAMENDSENDSTART对程序进行反汇编:

-u0B9B:

0000B89A0B0B9B:

00038ED80B9B:

0005BE00000B9B:

000806ADC

-g12

AX=0B9ABX=0000CX=003ADX=0000SP=0000BP=0000SI=0000DI=0000

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=0012NVUPEIPLNZACPONC0B9B:

0012A10000MOVAX,[0000]DS:

0000=267A

0000,000f

00007A26465015310000-0000000000000000z&

FP.1

2674H+6=267AH;

310cH+9=3115H;

分别表示X+6,R+9的值;

-g26

AX=F8B7

BX=0000CX=003ADX=0000SP=0000BP=0000SI=0000

DS=0B9A

ES=0B8ASS=0B9ACS=0B9BIP=0026NVUPEINGNZNAPECY

0026B44CMOVAH,4C

0000

7A26B7181531B718-0000000000000000z&

...1

0010

B89A0B8ED8BE0000-8316000006831604

0020

0009A10000290602-00A1040029060200))...

0030

A10200A30600B44C-CD21FF76F6B8D205

L.!

.v

0040

50FF362421E81864-83C408C45E062683

P.6$!

..d.…d&

.

 

0050

7F06007409A1A407-398672FF760AFF36

0060

2421B8DD05EB3090-803E60080074218B

0070

9E72FF8B36D22580-3800740AFF362421

$!

.…0..>

'

..t!

.r..6.%.8.t..6$!

7046H-267AH-3115H=187BH;

实现了:

W—(X+6)-(R+9)

(3)Z・(W*X)/(Y+6),R・余数

1.源程序如下:

DATASEGMENT

XDW5201H

WDW1357H

YDW3671HRDW?

ZDW?

DATASTART:

MOVDS,AXMOVAX,XIMUL[W]ADD[Y],0006HIDIV[Y]MOV[Z],AXMOV[R],DXMOVAH,4CHINT21H

0000B89A0B

0005A10000

0008F72E02000B9B:

000C06ADD0B9B:

0011F73E0400

0015A30800

0018MOV

001CB44C

PROGNAMENDSENDSTART

MOVAX,[0000]

IMULWORDPTR[0002]

WORDPTR[0004],+06

IDIVWORDPTR[0004]

MOV[0008],AX

[0006],DX

MOVAH,4C

001ECD21

-gc

AX=F157BX=0000CX=0030DX=0631SP=0000BP=0000SI=0000DI=0000

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=000COVUPEIPLNZNAPOCY

000C06ADDWORDPTR[0004],+06DS:

0004=3671

-g15

AX=1D1EBX=0000CX=0030DX=1465SP=0000BP=0000SI=0000DI=0000

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=0015NVUPEIPLNZNAPENC0B9B:

0015A30800MOV[0008],AXDS:

0008=0000

-g1c

DS=0B9AES=0B8ASS=0B9ACS=0B9BIP=001CNVUPEIPLNZNAPENC0B9B:

001CB44CMOVAH,4C

0006

6514-1E1D000000000000

B89A0

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

当前位置:首页 > 工程科技 > 能源化工

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

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