东南大学微机原理第一次实验报告
发布时间:2024-11-08
发布时间: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等等,经过一步一步的探索与尝试,慢慢了解了操作方法。
下一篇:220kv变电站电气主接线设计