微机实验报告最新Word下载.docx

上传人:b****1 文档编号:13541907 上传时间:2022-10-11 格式:DOCX 页数:17 大小:21.04KB
下载 相关 举报
微机实验报告最新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

PROGNAM,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSP,XX

MOVBP,SP

MOVSI,0

MOVAX,DATA1[SI]

MOVBX,DATA1[SI+2]

PUSHAX

PUSHBX

POPAX

POPBX

MOVAH,4CH

INT21H

PROGNAMENDS

ENDSTART

2).在DOS环境下,用汇编程序MASM对源文件汇编产生目标文件OBJ,命令格式如下:

F:

\masm5>

masmone1.asm

经过汇编后源程序为:

0WarningErrors

0SevereErrors。

即为汇编通过

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

F:

linkone1.obj

4).用DEBUG调试程序

调用格式如下:

debugone1.exe

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

-g

Match.

对程序进行反汇编:

-u

0B9B:

0000B89A0BMOVAX,0B9A

00038ED8MOVDS,AX

00058B260400MOVSP,[0004]

00098BECMOVBP,SP

000BBE0000MOVSI,0000

000E8B840000MOVAX,[SI+0000]

00128B9C0200MOVBX,[SI+0002]

001650PUSHAX

001753PUSHBX

001858POPAX

00195BPOPBX

001AB44CMOVAH,4C

001CCD21INT21

001EF6EBIMULBL

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

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

-g16

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

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

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

-g1A

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

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

由以上可知:

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

DATAENDS

PROGNAMSEGMENT

MOVAX,BX

MOVAX,0300H

MOVAX,[0300H]

MOVAX,[BX]

MOVSI,2

MOVAX,0001[BX]

MOVAX,[BX][SI]

MOVAX,0001[BX][SI]

1.在DOS环境下,用汇编程序MASM对源文件汇编产生目标文件OBJ,命令格式如下:

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

3.用debug调试程序:

4.对程序进行反汇编:

180E:

0000B8DD17MOVAX,17DD

00058BC3MOVAX,BX

0007B80003MOVAX,0300

000AB80003MOVAX,0300

000D8B07MOVAX,[BX]

000FBE0200MOVSI,0002

00128B4701MOVAX,[BX+01]

00158B00MOVAX,[BX+SI]

00178B4001MOVAX,[BX+SI+01]

001EC406FF76LESAX,[76FF]

由第五行:

并没有执行源程序中的:

MOVAX,[0300H]指令,所以执行后AX的结果为0000;

应该对程序进行修改

修改后的原程序如下:

MOVDX,0300H

MOVBX,DX

0005BA0003MOVDX,0300

00088BDAMOVBX,DX

000A8B07MOVAX,[BX]

000CBE0200MOVSI,0002

000F8B4701MOVAX,[BX+01]

00128B00MOVAX,[BX+SI]

00148B4001MOVAX,[BX+SI+01]

0017B44CMOVAH,4C

0019CD21INT21

001B057183ADDAX,8371

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

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

-t

AX=17DDBX=0000CX=032BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=17CDES=17CDSS=17DDCS=180EIP=0003NVUPEIPLNZNAPONC

把AX的值作为DS的首地址

DS=17DDES=17CDSS=17DDCS=180EIP=0005NVUPEIPLNZNAPONC

AX=17DDBX=0000CX=032BDX=0300SP=0000BP=0000SI=0000DI=0000

DS=17DDES=17CDSS=17DDCS=180EIP=0008NVUPEIPLNZNAPONC

AX=17DDBX=0300CX=032BDX=0300SP=0000BP=0000SI=0000DI=0000

DS=17DDES=17CDSS=17DDCS=180EIP=000ANVUPEIPLNZNAPONC

000A8B07MOVAX,[BX]DS:

0300=2312

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

AX=2312BX=0300CX=032BDX=0300SP=0000BP=0000SI=0000DI=0000

DS=17DDES=17CDSS=17DDCS=180EIP=000CNVUPEIPLNZNAPONC

将0002赋值给SI

AX=2312BX=0300CX=032BDX=0300SP=0000BP=0000SI=0002DI=0000

DS=17DDES=17CDSS=17DDCS=180EIP=000FNVUPEIPLNZNAPONC

000F8B4701MOVAX,[BX+01]DS:

0301=3423

AX=3423BX=0300CX=032BDX=0300SP=00

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

当前位置:首页 > 表格模板 > 书信模板

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

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