东南大学微机原理第一次实验报告

发布时间:2024-11-08

东南大学仪科学院微机原理实验报告

《微机实验及课程设计》

实验报告

实验一 汇编语言与程序调试基础

姓 名: 学 号:

专 业: 仪器科学与工程学院 实 验 室:计算机硬件技术 实验时间: 2014年04月17日报告时间: 2014年04月23日 评定成绩: 审阅教师:

东南大学仪科学院微机原理实验报告

一、实验目的

1、了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点

2、掌握汇编语言程序指令编辑、宏汇编、连接和运行的基本概念

3、熟练掌握动态调试程序TD的常用命令和窗口功能,学会用TD调试程序,修改环境

4、学会利用DEBUG或TD检查认识指令功能的正确方法

二、实验内容

1、必做内容

(1) 要求计算两个多字节十六进制数之差:

3B74AC60F8-20D59E36C1=?

式中被减数和减数为5个字节,存放在DATA1和DATA2的内存区,低位在前,高位在后。试编写减法的程序段,要求相减的结果存放在首址为DATA3的内存区。

(2) 以BUFFER为首地址的内存区存放了10个十六位带符号数,编写程序比较它们的

大小,找出其中最小的带符号数,存入MIN和MIN+1单元。

2、选做内容

(1) 两个字符串的长度均为10,首地址分别为STRING1和STRING2,比较两个字符串

是否完全相同,如果相同,将BL寄存器置为00H;如果不完全相同,将BL寄存器置为FFH,并将第一个字符串中的第一个不相同字符的地址放在SI寄存器中。

三、实验原理

1、实验基本步骤

(1)用任意一种文本编辑器(EDIT、NOTEPAD、UltraEDIT等)建立编辑汇编源程序,并将其保存为文件名.asm文件,将其放入带汇编工具的文件夹中(d:\tasm)。 注:文件名不要起的过长,在连接时可能会出现can’t find file的问题。

(2)开始菜单,点运行条目,打入cmd命令进入DOS调试环境。

(3)进入该文件夹(cd d:\tasm) ,键入如下命令开始编辑程序 :

d:\zxj>edit 文件名.asm

(4)将程序保存后返回DOS进行汇编,键入如下命令:

d:\zxj>tasm 文件名.asm

东南大学仪科学院微机原理实验报告

如果汇编通过,进行下一步,如果出现error,返回3步骤,根据错误的行数进行修改,然后重新汇编,直到不产生error为止。此时若出现warning可不予理会。

(5)将程序进行连接,键入如下命令:

d:\zxj>link 文件名.obj 如果连接正确,进行下一步,如果错误返回3步骤进行修改,然后重新编译和连接。

(6)执行程序,键入如下命令:

d:\zxj> 文件名.exe

如果执行正确,则应该显示正确结果;如果执行错误,返回步骤3,重新编译连接和执行。

(7)如果不能直接从程序中找出错误,可以应用Debug程序进行调试,键入如下命令:

d:\zxj> td 文件名.exe 在找出错误后,重新返回3步骤,重新编译连接和执行。

2、实验相关操作界面

(1)TD操作界面

四、实验源程序和流程图:

1、实验1:

源代码:

东南大学仪科学院微机原理实验报告

data segment

data1 db 0F8H,60H,0ACH,74H,3BH

data2 db 0C1H,36H,9EH,0D5H,20H

data3 db 20 dup(?)

data ends

stacks segment stack

db 256 dup(?)

stacks ends

code segment

assume cs:code,ds:data,ss:stacks

main proc far

start : mov ax,data

mov ds,ax

mov ax,stacks

mov ss,ax

clc

mov si,0

mov cx.2

loopl: mov al,data1[si]

sub al,data2[si]

mov data3[si],al inc si dec,cx loop loop1

mov ah,4ch

int 21h

main endp

code ends

end start

东南大学仪科学院微机原理实验报告

2、实验2:

源代码:

data segment

buffer dw 1234H,2345H,3456H,5678H,6789H,789AH,0ABCDH,0BCDEH,0CDEFH,0EDF1H min dw 1 dup(?)

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

lea si,buffer

mov cx,10

cld

lodsw

mov min ax

dec cx

next:lodsw

cmp ax,min

jl less

jmp goon

less: mov min,ax

goon: loop next

out: mov ah,4ch

int 21h

code ends

end start

五、实验结果

1、实验1:

东南大学仪科学院微机原理实验报告

2、实验2:

六、遇到的问题及解决办法

1、一开始老师上课讲说是要在windows XP系统上运行dos环境,但由于自己的电脑本身是windows 7的系统,而又不想装虚拟机,便多方咨询了同学,从网上下了一个可以在win7 32位系统上运行的tasm.exe,link.exe等的调试汇编程序的相关软件,同时又下载了一个dosbox软件以运行相关程序。

东南大学仪科学院微机原理实验报告

2、在一开始调试程序的时候,由于对程序编写的规则还是不太清楚,因此忘记了对数据段(DS)进行初始化,导致用td调试结果的时候,执行go to:ds:0000的时候,查不到应该得到的数据。于是,又重新查找了一下书上的例子,找到了错误之处,改正后再次调试,得到了正确的结果。

3.因为初次接触dos环境和td调试界面,具体应该怎样操作并不是特别熟悉,在实验的过程中遇到了很多问题,譬如怎样在td中查找结果,验证结果是否正确;怎样运行td等等,经过一步一步的探索与尝试,慢慢了解了操作方法。

东南大学微机原理第一次实验报告.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219