微机原理实验指导书

合集下载

微机原理实验指导书

微机原理实验指导书

实验一初级程序的编写与调试一、实验目的1、熟练掌握的DEBUG常用命令,学会用DEBUG调试程序;2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入与弹出;3、掌握各种寻址方法以及简单指令的执行过程。

二、实验内容1、设堆栈指针SP=2000H,AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间单元,用DEBUG调试程序进行汇编与调试。

2、设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H—304H连续单元顺序装入0AH、OBH、0CH、0DH、0EH。

在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程。

当每条数据传送完毕时,AX中的内容是什么。

程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3、设AX=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成。

三、实验要求1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,对程序结果的分析等。

2、本实验要求在PC机上完成。

3、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序,调试程序,执行程序。

4、编程提示:(1)、实验内容1将两个寄存器内容进行交换时,必须有一个中间寄存器才能进行内容的交换。

如果用堆栈作为中间存储单元,必须遵循先进后出的原则。

(2)、实验内容2[1] 其中数据段寄存器中的段地址为进入DEBUG状态后系统自动分配的段地址。

[2] SI和BX的初值可在DEBUG的状态下,用R命令装入,也可以在程序中用指令来完成。

[3] 用T命令执行程序,可进行单步跟踪执行,每执行一条指令就可以看到各寄存器的状态,也可用R命令直接调出寄存器,来检查各寄存器内容是否正确。

微机原理实验学生实验指导书

微机原理实验学生实验指导书

微型计算机原理实验指导书河北大学电子信息工程学院2017年10月目录实验一系统认识及编程初步实验 (1)实验二输入输出程序设计实验 (7)实验三8255并行接口实验 (9)实验四8259中断控制实验 (13)实验五8254定时/计数器应用实验 (19)实验六综合实验 (24)实验一系统认识及编程初步实验一、实验目的1. 掌握TD系列微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。

2. 掌握使用运算类指令编程及调试方法。

3. 学习使用软件监视变量的方法。

二、实验设备PC机一台,TD-PITE实验装置一套。

三、实验内容(一)基础实验1. 系统认识实验编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。

2. 运算编程实验80X86指令系统提供了实现加、减、乘、除运算的基本指令,可对表1-1所示的数据类型进行算术运算。

本实验以二进制双精度加法运算为例,计算X+Y=Z,将结果Z存入某存储单元。

表1-1 数据类型算术运算表(二)提高实验1. 在系统认识实验中,编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。

通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。

2. 在运算编程实验中,求累加和程序设计,在偏移地址为1000H开始依顺序填入16个字(16个16位数),利用程序求和,存放在偏移地址2000H。

四、实验步骤(一)系统认识实验1. 运行Wmd86软件,进入Wmd86集成开发环境。

2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言和寄存器类型,这里我们设置成“汇编语言”和“16位寄存器”,如图1-1、图1-2所示。

设置选择后,下次再启动软件,语言环境保持这次的修改不变。

图1-1 语言环境设置界面图1-2 寄存器设置界面3. 语言和寄存器选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图1-3所示。

微机原理及应用实验指导书

微机原理及应用实验指导书

目录第一章概述 (1)第二章伟福实验系统组成和结构 (3)第三章 8088/86 CPU系列实验 (12)软件实验1. 存储器块清零实验 (13)2. 二进制到BCD码转换实验 (15)3. 二进制到ASCII码转换实验 (17)4. 内存块移动实验 (19)5.多字节加法实验 (21)6.乘法实验实验 (23)7.子程序调用实验 (25)8.数据排序实验 (26)硬件实验1.8255输入输出实验 (28)2.8253计数器实验 (30)3.8253定时器实验 (32)4.8259外部中断实验 (34)5.A/D转换实验 (36)6.8250串行口通讯实验 (38)第一章概述《微机原理及应用》实验采用伟福Lab2000仿真实验系统,本仿真实验系统由板上仿真器、实验仪、伟福仿真软件、开关电源构成。

1.1系统实验板本实验板提供以下实验(1)数模变换电路(2)模数变换电路(3)逻辑电平输入开关(4)逻辑电平显示电路(5)单脉冲电路(6)逻辑笔电路(7) 1MHz及500KHz脉冲信号源(8) PWM转换电压电路(9)模拟量电压(电位器)电路(10)串口通信实验电路(11)扬声器驱动电路(12)继电器控制电路(13)逻辑门电路(14)六位8段码LED数字显示器(15)4x6键盘(16)存贮器(17)通用集成电路插座(DIP40/28/24/20/18/16/14)(18)地址,数据及控制电路总线接出插座通过可选附件还可以扩展完成以下实验:(19)步进电机实验(20)打印机驱动实验(21)传感器实验(22)直流电机实验1.2 仿真器系统构成本仿真实验系统具有三种使用方法:(1)无系统机,仅用实验仪的板上仿真器进行仿真和实验。

(2)有系统机,用系统机上的WINDOWS/DOS软件驱动板上仿真器进行仿真和实验。

(3)有系统机、用外接仿真器进行仿真和实验。

(4)无实验仪、无仿真器,仅在系统机上采用软件模拟方式进行仿真。

微机原理实验指导书(软件)

微机原理实验指导书(软件)

实验一系统认识与数码转换实验一、实验目的1.学习汇编语言的开发过程。

2.熟练掌握DEBUG调试程序。

参考书后附录E二、实验设备PC机一台三、实验内容及步骤1.系统认识实验在内存缓冲区BUFF中存储0-F共16个字节数据,实验参考程序如下:DATA SEGMENTBUFF DB 16 DUP (?);定义数据段DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DI,OFFSET BUFF ;设置缓冲区首址MOV CX,16 ;字节数送入CX中MOV AL,0A1: MOV [DI],AL ;写入一字节INC DI ;修改地址指针INC AL ;修改数据LOOP A1 ;未填完循环MOV AH,4CHINT 21HCODE ENDS ;代码段结束END START ;程序结束实验步骤:(1)把实验用的相关软件拷贝到PC机中,比如D盘的HUIBIAN文件夹(D:\HUIBIAN)。

(2)进入DOS环境(开始\程序\附件\‘C:\命令提示符’),进入路径D:\HUIBIAN。

(3)编辑,启动编辑软件EDIT,输入源程序,检查无误后存盘,如文件名11.ASM。

(4)汇编,即键入MASM 11.ASM回车,通过后应生成文件11.OBJ。

(5)连接,即键入LINK 11.OBJ回车,通过后应生成文件11.EXE。

(6)调试,即键入DEBUG 11.EXE,进入调试软件DEBUG来调试源程序。

DEBUG的用法可参考教材的附录E。

(7)运行程序,观察结果是否正确。

2.数码转换实验将十进制数的ASCⅡ码转换为BCD码。

设五位十进制数的ASCⅡ码已存放在内存缓冲区BUF1中,转换为 BCD 码后,再分别存入内存缓冲区BUF2中。

提示:一字节ASCⅡ码取其低四位即变为BCD码。

实验程序如下:DATA SEGMENTBUF1 DB 31H,32H,33H,34H,35H ;定义数据段BUF2 DB 5 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX, 5 ;循环计数器赋初值MOV SI,OFFSET BUF1 ;ASCⅡ码首址MOV DI,OFFSET BUF2 ;BCD码首址A1: MOV AL,[SI] ;送ASCⅡ码至ALCMP AL,3AH ;比较AL与3AJAE A2 ;大于3A则转A2SUB AL,30H ;小于3A则取ASCⅡ码低4位JB A2 ;小于30则转A2MOV [DI],AL ;保存结果A2: INC SIINC DILOOP A1MOV AH,4CHINT 21HCODE ENDSEND START实验步骤(1)输入源程序,进行汇编、连接。

微机原理实验指导书 何小海 严华

微机原理实验指导书 何小海 严华

实验一数据传送一、实验目的熟悉星研集成环境软件的使用方法。

熟悉Borland公司的TASM编译器熟悉8086汇编指令,能自己编写简单的程序,掌握数据传输的方法。

二、实验内容1、熟悉星研集成环境软件。

2、编写程序,实现数据段的传送、校验。

使用汇编语言,将数据段中3000H~30FFH单元的内容传送给实验仪B4区的61C256的2000H~20FF中;B4区的61C256在I/O设备区,使用IOR、IOW读写;再将它传送回数据段的6000H~60FFH中。

三、程序流程图(学生根据实验内容设计)四、实验步骤在DS段内3000H~30FFH中输入数据;使用单步、断点方式等调试程序,检测DS段内6000H ~60FFH中的内容。

熟悉查看特殊功能寄存器、CS段、DS段的各种方法。

五、程序清单(参考)本实例的源程序如下:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DX,2000HSTART1: MOV AL,[SI]OUT DX,ALINC SIINC DXLOOP START1MOV DI,6000HMOV DX,2000HMOV CX,100HSTART2: IN DX,ALMOV [DI],ALINC DIINC DXLOOP START2SJMP $Move ENDPEND START六、思考题编写一个程序,将数据段中2000H~20FFH单元的内容传送给数据段的6000H~60FFH中。

实验内容:1、用所学过的寻址方式编程实现将存储单元DS:1000H单元的内容送到DS:2020H单元。

2、设各寄存器及存储单元的内容如下:(DS)=0500H,(BX)=0010H,(SI)=0001H,(05010)=12H,(05011)=34H,(05012)=56H,(05013)=78H,(05120)=ABH,(05121)=CDH,(05122)=EFH,说明下列各条指令执行完后AX寄存器中的内容。

微机原理实验指导书

微机原理实验指导书

实验一 DOS命令与汇编源程序输入、汇编、连接、运行一、实验目的掌握在计算机上运行汇编语言程序的整个操作过程。

学会将自己编制的汇编语言源程序用EDIT编辑程序输入计算机并存盘;学会用MASM 宏汇编程序对汇编语言源程序进行汇编形成二进制目标文件;学会用LINK连接程序对二进制目标文件连接形成可执行文件;学会运行经汇编和连接后形成的可执行文件;学会用DEBUG调试程序运行和调试可执行文件。

二、实验设备1、PC系列不低于80286档次的微型机;2、DOS3.3以上版本的操作系统;3、EDIT,MASM,LINK,DEBUG执行程序。

三、实验步骤1、用EDIT编辑汇编源程序(1)MS-DOS Editor的启动与退出Editor是在DOS系统提示符下启动,其命令格式为:C:EDIT [Path] [filename]在编辑完成后,选择屏幕菜单的File命令(按“ALT+F”键)中的Exit项即可退出Editor。

(2)建立文本文件在MS-DOS Editor的屏幕菜单栏中File命令就是对文本文件的建立、存储和打印的操作。

A.建立文件(New)打开屏幕菜单栏中File下拉菜单,选择New项。

B.编辑文件将写好的汇编语言源程序输入到编辑文本区。

输入时,一行结束后按回车键(Enter)换行。

C.保存文件(Save)打开屏幕菜单栏中File下拉菜单,选择Save项在弹出的对话框中键入文件名。

如果要把文件保存到非默认路径下,则在键入文件名的同时键入路径。

D.打开文件(Open)打开屏幕菜单栏中File下拉菜单,选择Open项。

该窗口中有三个区可以选择要打开的文件:文件名区:可以直接键入要打开的文件名;文件表区:文件表中列出要打开的所有文件名,供用户选择;目录/磁盘区:键入的文件名是哪个磁盘目录中的,在该区中选择。

在Open对话框中用“Tab”或“Shift+Tab”键选择各区。

选完后按“OK”确定。

2.MASM宏汇编程序的使用方法(1)命令格式和功能命令格式:MASM文件名功能:对汇编语言源程序进行汇编形成二进制目标文件(2)操作过程在DOS下,将目录切换到汇编语言所在目录下,然后调入MASM宏汇编程序。

微机原理实验指导书1_2_4_5

微机原理实验指导书1_2_4_5

微机原理实验指导书郑州大学电气工程学院目录实验一比较字符串实验 (1)实验二两个多位十进制数相加的实验 (14)实验三两个数相乘的实验 (18)实验四键盘输入并显示实验 (21)实验五统计学生成绩 (25)实验六 8259A 中断控制器实验 (29)实验七 8253计数器/定时器实验 (34)实验八 8255并行接口实验 (37)实验九 8251A 串行接口实验 (43)实验十 A/D 实验 (51)附录一调试程序DEBUG (51)附录二汇编程序出错信息 (59)实验一比较字符串实验一.实验目的1.掌握分支程序的设计方法。

2.熟悉在PC机上建立、汇编、链接、调试和运行8086汇编程序的过程。

二.实验内容1.比较两个字符串STRING1和STRING2所含的字符是否相同,若相同则显示‘Match’,否则显示‘No Match’。

2.修改程序,显示所比较字符的个数。

三.程序清单DATAREA SEGMENTSTRING1 DB 'Move the cursor backward.'STRING2 DB 'Move the cursor backward.'MESS1 DB 'Match.',13,10,'$'MESS2 DB 'No match.',13,10,'$'DATAREA ENDSPROGNAM SEGMENTMAIN PROC FARASSUME CS:PROGNAM,DS:DATAREA,ES:DATAREASTART: PUSH DSSUB AX,AXPUSH AXMOV AX,DATAREAMOV DS,AXMOV ES,AXLEA SI,STRING1LEA DI,STRING2CLDMOV CX,STRING2-STRING1REPZ CMPSB?LEA DX,MESS2?MATCH: LEA DX,MESS1DISP: MOV AH,09HINT 21HRETMAIN ENDPPROGNAM ENDSEND START四.实验方法1.用编辑程序EDIT.EXE建立源文件EDIT D101-1.ASM↙在编辑状态下输入源程序,存盘后退出编辑状态。

2023年微机原理实验指导书

2023年微机原理实验指导书

2.1系统生疏试验【试验目的】把握TD 系列微机原理及接口技术教学试验系统的操作,生疏Wmd86 联机集成开发调试软件的调试环境。

【试验设备】PC 机一台,TD-PITE 试验装置一套。

【试验内容】编写试验程序,将00H~0FH 共16 个数写入到内存3000H 开头的连续16 个存储单元中。

【试验步骤】1.运行Wmd86 软件,进入Wmd86 集成开发环境。

2.在设置菜单中选择“汇编语言”和“16 位存放器”。

3.单击文集菜单的建命令,建一个文档,默认文件名为Wmd861。

4.编写试验程序,并保存,此时系统会提示输入的文件名,输完后点击保存。

5.单击编译文件,假设程序编译无误,则科技连续单击进展链接,链接无误前方可以加载程序。

6.连接PC 与试验系统的通讯电缆,翻开试验系统电源。

7.编译、链接都正确并且上下机通讯成功后,就可以下载程序,联机调试了。

可以通过端口列表中的“端口测试”来检查通讯是否正常。

点击下载程序。

为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。

下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。

起始运行语句下会有一条绿色的背景。

8.将输出区切换到调试窗口,试验命令D0000:3000 查看内存3000H 起始地址的数据。

9.点击按钮运行程序,等待程序运行停顿后,通过命令来观看程序结果。

10.也可以设置端点,要修改内存中的数据可以使用命令E,如E0000:3000 可以修改地址0000:3000 处的数据,修改完一个后,可按“空格”键连续输入下一个数。

输入完成后按“回车”键退出。

2.2数制转换试验【试验目的】1 把握不同进制数及编码相互转换的程序设计方法,加深对数值转换的理解。

2.生疏程序调试的方法。

【试验设备】PC 机一台,TD-PITE 试验装置一套。

【试验内容】编写程序,将ASCII 码表示的十进制数转换为二进制数。

【试验步骤】1.依据程序流程图编写程序。

微机原理实验指导书.

微机原理实验指导书.

微机原理与接口实验指导书皖西学院机械与电子工程学院2012.10实验一 DOS命令与汇编源程序输入、汇编、连接、运行一、实验目的掌握在计算机上运行汇编语言程序的整个操作过程。

学会将自己编制的汇编语言源程序用EDIT编辑程序输入计算机并存盘;学会用MASM宏汇编程序对汇编语言源程序进行汇编形成二进制目标文件;学会用LINK连接程序对二进制目标文件连接形成可执行文件;学会运行经汇编和连接后形成的可执行文件;学会用DEBUG调试程序运行和调试可执行文件。

二、实验设备1、PC系列不低于80286档次的微型机;2、DOS3.3以上版本的操作系统;3、EDIT,MASM,LINK,DEBUG执行程序。

三、实验步骤1、用EDIT编辑汇编源程序(1)MS-DOS Editor的启动与退出Editor是在DOS系统提示符下启动,其命令格式为:C:EDIT [Path] [filename]在编辑完成后,选择屏幕菜单的File命令(按“ALT+F”键)中的Exit项即可退出Editor。

(2)建立文本文件在MS-DOS Editor的屏幕菜单栏中File命令就是对文本文件的建立、存储和打印的操作。

A.建立文件(New)打开屏幕菜单栏中File下拉菜单,选择New项。

B.编辑文件将写好的汇编语言源程序输入到编辑文本区。

输入时,一行结束后按回车键(Enter)换行。

C.保存文件(Save)打开屏幕菜单栏中File下拉菜单,选择Save项在弹出的对话框中键入文件名。

如果要把文件保存到非默认路径下,则在键入文件名的同时键入路径。

D.打开文件(Open)打开屏幕菜单栏中File下拉菜单,选择Open项。

该窗口中有三个区可以选择要打开的文件:文件名区:可以直接键入要打开的文件名;文件表区:文件表中列出要打开的所有文件名,供用户选择;目录/磁盘区:键入的文件名是哪个磁盘目录中的,在该区中选择。

在Open对话框中用“Tab”或“Shift+Tab”键选择各区。

微机原理实验指导书

微机原理实验指导书

微机原理实验指导书第一章DEBUG调试系统的使用。

1一、DEBUG的作用。

1二、DEBUG的使用。

1第二章 Intel 80x86 指令系统及寻址方式和基本程序设计。

18一、数据传送指令。

18二、算术运算类指令及线性程序设计。

20三、逻辑及移位类指令与线性程序设计。

22四、转移类指令与分支型程序设计。

24五、循环控制类指令与循环程序设计。

25第三章 DOS 功能调用。

28一、源程序的编辑和可执行文件的形成。

28二、输入输出程序设计。

29第四章循环和分支结构汇编语言程序设计。

30一、循环程序结构。

30二、分支程序结构。

31三、综合程序练习。

32第五章子程序结构汇编语言程序设计。

32一、子程序之一___原程序结构的编辑和可执行文件的形成。

32二、子程序之二___子程序的设计。

38第六章高级汇编语言程序设计。

39一、宏汇编语言程序的结构。

39二、宏汇编语言程序设计。

40三、重复汇编技术。

40第七章键盘程序设计。

40一、键盘输入程序。

40第八章音乐程序设计。

42一、发音程序。

42二、音乐程序。

42第九章活动图形显示程序。

44一、活动字符图形显示。

44二、静止复合图形显示。

45第十章磁盘文件操作程序。

47一、文本文件内容显示。

47二、磁盘文件拷贝。

50 第十一章绝对磁盘读写程序。

53一、误删除文件的恢复。

53二、磁盘目录显示程序。

53第一章DEBUG调试系统的使用一、DEBUG的作用DEBUG是DOS提供的用于程序调试的系统,作为DOS的外部命令随DOS的其它外部命令一起由DOS的提供产商向用户提供。

因此用户在使用DEBUG系统时一定要注意当前用户所使用的DOS 的外部命令中是否提供该命令(若DOS命令不全,有可能没有此命令)。

二、DEBUG的使用1、DEBUG的调用由于DEBUG是DOS的外部命令,因此必须在DOS的提示符状态下进行调用。

调用的方法如下:C:\>DEBUG [FILENAME]此处FILENAME应是文件的全名,即应包括文件的主名和扩展名(若文件有扩展名),如文件不在当前目录,则还因包括文件所存放的目录名。

微机原理试验指导书

微机原理试验指导书

《微型计算机原理》实验指导书上海行知学院计算机系二零零六年五月实验一DEBUG 调试指令的认识实验一、实验目的(1)熟悉 DEBUG的调试命令和 DEBUG的调试指令的使用方法(2)掌握各种寻址方式和指令的功能二、实验内容1、已知:(DS)=3000H、(ES)=3500H、(SS) =4000H、(BX)=0038H 、(BP)=0019H 、(SI) =0012H、(3005AH)=56H、(3005BH)=78H、(30068H)=11H、(30069H)=22H、(32000H)=12H、(32000H)=34H、( 35038H) =0AAH、( 35039H) =0BBH、( 4002BH) =88H、( 4002BH) =99H。

分别下列指令, 请说明其源操作数的寻址方式、有效地址和物理地址,以及AX寄存器中的内容。

(1)MOV AL,2000H(2)MOV AX , [2000H](3)MOV AX,BX(4) MOV AL , ES: [BX](5)MOV AX , 30H[BX](6)MOV AX , [BP][SI](7)MOV AL,10H[BX][SI](8)MOV DX , ES: [BX](9) MOV AL,ES:[BX]2、已知: (SS)= 2200H,(SP)=0010H,(DX)=ABCDH,(CX)=5678H执行下列指令段:PUSHDXPOPCX请说明 DX、CX以及 SP寄存器中的内容,用T 命令跟踪,观察执行结果3、已知:(BX) =82A8H、( AX) =9FA3H执行面这指令,求 AX寄存器及 CF, SF, ZF 和 OF 的内容是什么?ADD AX,BX4、假设( DX) =97B5H,确定下列各条指令单独执行后的结果。

(1) AND DX, 0F54H(2) XOR DX, 0FFFFH三、实验要求(1)掌握 DEBUG的调试 R 、 A、 U、 D、 E、T 命令使用方法(2)掌握数据传送、算术和逻辑运算指令的功能四、实验步骤1、首先进入DEBUG状态,用R 命令修改各寄存器的内容,以满足题目的要求。

微机原理实验指导书 (1)

微机原理实验指导书 (1)

实验一系统操作及程序调试举例1.实验目的学习并掌握实验系统的基本操作,为以后的实验打下基础。

2.实验设备DICE-8086B实验系统一台3.实验准备工作系统一经连好,检查无误后,就可以通电运行。

系统提供两种启动方式,即:系统自动完成后,显示器上会显示“>”提示符,等待键入操作命令。

4.实验内容及步骤(1)系统操作练习(一)要求:从3500内存单元开始建立0~15共16个数据。

程序流程图如下:实验步骤①输入与修改:在“﹥”提示符下键入A2000,此时显示器上将会显示程序的段地址CS和偏移地址IP(=2000H),接着就可以在光标处输入程序。

注:在输入过程中,若发现本行有错误,则可以按“ ”键删除并重新输入;若回车后系统提示“ERROR!”,则要在原地址指针处重新正确输入。

输入程序后可通过反汇编查看程序。

(U操作)②程序运行:在DICE-8086B实验系统上,程序的运行方式有单步、连续和断点运行几种方式。

可参考(T操作,G操作,GB操作等)③内存单元的修改与显示:用(D操作)可显示内存单元的内容,用(E操作)可修改内存单元的内容。

(分别参考前)。

④运行程序观察从3500H单元开始连续存放的16个数据为多少?任意修改AX的值,再运行程序,显示运行结果是否正确?流程图及参考程序如下:地址机器码助记符注释2000 BF 3500 MOV DI,3500 ;设数据区首址2003 B9 0010 MOV CX,0010 ;字节数送CX2006 B8 0000 MOV AX,00002009 9E SAHF200A 88 05 MOV B[DI],AL ;写入一字节200C 47 INC DI ;修改地址指针200D 40 INC AX ;修改数据200E 27 DAA ;十进制调整200F E2 F9 LOOP 200A ;未填完转移2011 CD 00 INT(2)系统操作练习(二)要求:将内存3500单元开始的0~15共16个数传递到3600单元开始的数据区中。

微机原理实验指导书

微机原理实验指导书

微机原理实验指导书实验一数据传送实验目的 :1. 熟悉 8086 指令系统的数据传送指令及 8086 的寻址方式。

2. 利用 Turbo Debugger 调试工具来调试汇编语言程序。

实验任务 :1.通过下述程序段的输入和执行来熟悉Turbo Debugger 的使用,并通过显示器屏幕观察程序的执行情况。

练习程序段如下:MOV BL , 08HMOV CL , BLMOV AX , 03FFHMOV BX , AXMOV DS : [0020H] , BX2.用以下程序段将一组数据压入( PUSH )堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。

压栈程序段如下:MOV AX , 0102HMOV BX , 0304HMOV CX , 0506HMOV DX , 0708HPUSH AXPUSH BXPUSH CXPUSH DX出栈程序段请自行编写(用不同的出栈顺序)。

.3. 指出下列指令的错误并加以改正,上机验证之。

(1) MOV [BX] , [SI](2) MOV AH , BX(3) MOV AX , [SI][DI](4) MOV BYTE PTR[BX] , 2000H(5) MOV CS , AX(6) MOV DS , 2000H4. 设置各寄存器及存储单元的内容如下:(BX) = 0010H , (SI) = 0001H(10010H) = 12H , (10011H) = 34H , (10012H) = 56H ,(10013H) =78H (10120H) =0ABH ,(10121H) =0CDH ,(10122H) = 0EFH说明下列各条指令执行完后 AX 寄存器中的内容,并上机验证。

(1) MOV AX , 1200H(2) MOV AX , BX(3) MOV AX , [0120H](4) MOV AX , [BX](5) MOV AX , 0110H[BX](6) MOV AX , [BX][SI](7) MOV AX , 0110H[BX][SI]5. 将 DS : 1000H 字节存储单元中的内容送到 DS : 2020H 单元中存放。

微机原理实验指导书1-二进制多位加法运算

微机原理实验指导书1-二进制多位加法运算

微机原理实验指导书1-二进制多位加法运算实验一二进制多位加法运算一、实验目的1.熟悉实验系统键盘显示的使用。

2.掌握使用加法类运算指令编程及调试方法。

3.掌握加法类指令对状态标志位的影响。

二、实验设备与工具1.微机原理与接口技术实验箱。

2.微型计算机。

三、实验原理及方法实验内容:计算X+Y+Z=?(X、Y、Z为16位二制数)本实验是三个十六位二制数相加运算,因此,当X+Y时要考虑用ADC指令,把进位C加到结果的高16位中,当(X+Y)+Z时,再把进位C加到结果的高16位中,本实验如设定三个加数0FFFFH,计算结果应为2FFFDH。

四、实验步骤1.打开实验箱前盖。

检查:(1)JK(开关)置‘系统’:键盘/显示接口选择系统配置的8255接口芯片,进入监控状态。

(2)KB6:通讯选择开关,KB6开关拨向88一侧(单8086实验仪无KB6),选择PC机和8086系统通讯。

(3)不插或卸掉已装的CPU卡(单8086实验仪无CPU卡安装、插座)。

2.将随机配送的串行通讯线,一端与实验仪的RS232D型插座CZ1相连,另一端与PC机COM1或COM2串行口相连。

3.接通实验系统电源,+5V LED指示灯应正常发光,实验仪数码管应显示闪动P.,说明实验仪初始化成功,处于待命状态。

(否则应及时关闭电源,待修正常后使用)4.打开PC机电源,执行DJ8086K的集成调试软件,关于该软件的详细说明请参阅《DJ8086K实验系统与PC机联机操作部分》。

5.编写程序,在PC机和实验系统联机状态下,运行该实验程序。

如可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598k8Asm文件夹,点击S1.ASM 文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或“单步运行”,即开始运行程序。

6.运行完后,运算结果保留在内存4100H~4102H单元中,点击DJ-8086K软件中存贮器RAM窗口,输入RAM的起始地址4100、4101、4102,当三个被加数为0FFFFH,三个单元内容应为FD、FF、02。

微机原理实验指导书(注释版修正版)-1

微机原理实验指导书(注释版修正版)-1

微机原理实验指导书(版本0.1)余有灵副教授控制科学与工程系2007年11月13日说明本实验指导书是依据西安唐都科教仪器公司的产品手册编制,在实验中心相关领导和实验工作人员的帮助下完成的,在此表示感谢。

实验一 显示程序实验1. 实验目的(1) 掌握在PC 机上以十六进制形式显示数据的方法。

(2) 掌握部分DOS 功能调用使用方法。

(3) 熟悉Tddebug 调试环境和Turbo Debugger 的使用。

2. 实验设备PC 微机一台。

3. 实验内容及说明一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。

本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS 功能调用完成一些提示信息的显示。

实验中可使用DOS 功能调用(INT 21H )。

(1) 显示单个字符输出 入口:AH=02H 调用参数:DL=输出字符 (2) 显示字符串 入口:AH=09H 调用参数:DS:DX=串地址,’$(3) 键盘输入并回显 入口:AH=01H 返回参数:AL=输出字符 (4) 返回DOS 系统入口:AH=4CH调用参数:AL=返回码4. 实验步骤(1) 运行Tddebug 软件,选择Edit 菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图2-1-1示。

(2) 使用Compile 菜单中的Compile 和Link 对实验程序进行汇编、连接。

(3) 使用Rmrun 菜单中的Run ,运行程序,观察运行结果。

(4) 使用Rmrun 菜单中的Debug ,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。

(5) 更改数据区中的数据,考察程序的正确性。

图1 显示程序实验流程图5. 参考程序清单;显示程序实验STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENT MES DB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$' MES1 DB 'Show a as hex:',0AH,0DH,'$' SD DB'a'16位段模式DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXMOV ;显示退出提示MOV AH,09HINT 21HMOV DX,OFFSET MES1 ;show messageMOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:[SI]AND AL,0F0H;取高4位SHR AL,4CMP AL,0AH ;是否是A 以上的数JB C2ADD AL,07H C2:ADD AL,30HMOV DL,AL ;show characterMOV AH,02HINT 21HMOV AL,DS:[SI]AND AL,0FH ;取低4位CMP AL,0AHJB C3ADD AL,07H C3:ADD AL,30HMOV DL,AL ;show characterMOV AH,02HINT 21HKEY:MOV AH,1 ;判断是否有按键按下?INT 16HJZ KEY C2也是一个标号,可以用跳转循环指令直接跳到这个标号所在的代码行执行MOV AX,4C00H ;go back to dosINT 21HCODE ENDSEND START。

《微机原理及应用技术》实验指导书

《微机原理及应用技术》实验指导书
第三步:编译不通过,重新修改(错误类型:源程序语句不合法)
在执行过第二步后,如有出错信息时,就不能跳跃到第四步去,如果强行执行第四步, 将无任何有效结果。
说明:要清楚,在第二步中检测出的错误均为每一条语句的语法或用法错误,它并不能 检测出程序的逻辑设计(语句安排位置)错误,所以就要记好出错的行号。在记录行号后, 就应再次执行第一步,这时的操作应是打开已编好的源程序(以 EDIT 为例:在 DOS 提示符 下键入:
3
《微机原理》实验指导书
段寄存器 CS,DS,ES 和 SS 均指向 DEBUG 末尾的第一个段。 IP 寄存器置为 0100H。栈指针 SP 指向尾部或装入程序的暂存部分的底部。 其余寄存器皆取零值,但若用户调用时含文件说明,则 CX 含文件长度(长度大于
64K 时 BX 含长度的高位);标志为各自的复位值;驱动器传送地址在代码段位移 80H 处。 注意:若 DEBUG 装入扩展名为.EXE 的文件,则 DEBUG 需重定位且设置段寄存器指示器为 文件中所定义的值。但 DS,ES 指向最低可用段处的程序区前缀。BX 和 CX 为文件容量值。 而 .EXE 文件如果在连接时选择了装入内存高处的参数,则该程序装入高处。
溢出 OF 有/无 OV/NV
方向 DF 减/增 DN/UP
中断 IF 开/关 EI/DI
符号 SF 负/正 NG/PL
零 ZF 零/非 ZR/NZ
辅助 AF 有/无 AC/NA
奇偶 PF 偶/奇 PE/PO
进位 CF 有/无 CY/NC
(2)显示指定寄存器内容
例如:-R AX <Enter>
-R F <Enter>
EDIT filename.asm 回车,依据行号进行修改并存盘,再次进行汇编,直至第二步通过 为止。便可继续向下执行第四步。

微机实验指导书(最终版)

微机实验指导书(最终版)

微机实验指导书(最终版)试验一熟悉汇编环境以及初级程序的编写与调试一实验目的1.熟识掌控debug的常用命令,学会用debug调试程序。

2.了解数据在存储器中的存取方法以及堆栈中数据的压入与弹出。

3.掌握各种寻址方法及简单指令的执行过程。

二试验要求1.实验前要搞好充分准备,包含汇编程序目录、调试步骤、调试方法,以及对程序结果的分析。

2.本实验要求在pc机上进行。

3.本实验只建议在debug调试程序状态下展开,包含汇编程序、调试程序、执行程序。

三实验内容1.熟悉debug的常用命令(1)汇编命令a1a【段寄存器名】格式:○:【偏转地址】2a【段地址】○:【偏转地址】3a【偏转地址】○4a○功能:用该命令可以将汇编语言程序直接汇编进入内存。

当键入a命令后,表明段地址和偏转地址等候用户键入编订指令,每键入一条编订指令contrary后,自动表明下一条指令的段地址和偏转地址,再键入下一条编订指令,直至汇编语言程序全部键入,又表明下一条地址时可以轻易键入contrary返回提示符“―”年才。

1的段地址在段地址寄存器中,其中○因此在使用该命令时必须将段地址寄存器送入段地3的段地址在cs中,○4的段地址在cs中,偏移地址为100h。

址,○(2)执行程序命令g和单步执行程序t功能:用该g命令可直接执行汇编语言程序;用t命令可单步执行汇编语言程序并显示当前寄存器内容(3)表明内存命令d1d[地址]格式:○2d[地址范围]○3d○功能:显示指定内存范围的内容。

(4)修改存储单元内容命令e1e[地址][内容表中]格式:○2e[地址]○1用命令所取值的内容西略替代选定地址范围的内存单元内容。

功能:○2一个单元一个单元的连续修改单元内容。

○其中:内容表列出一个十六进制数或一串十六进制数,也可以就是用单引号内加起至的一串字符。

(5)检查和修改寄存器内容命令r1r格式:○2r[寄存器名]○1表明cpu内部所有寄存器的内容和全部标志位的状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微型计算机原理与应用实验指导书上海大学通信学院2010 年4 月PC微机原理实验一一、目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的功能。

要求:在PC机上完成下列程序的调试运行,并写出运行结果。

二、1.DEBUG的基本操作:(详细内容请参阅教材“程序的调试,P173”和“附录F调试程序DEUBG的使用,P499”)(1)从WINDOWS进入DOS之后,输入命令启动DEBUG:C:>DEBUG 回车(2)输入R命令,查看和记录CPU各个寄存器的内容:-R回车看到什么(3)输入A命令,汇编下面的字符“WINDOWS”显示程序:-A100 ;从偏移地址是0100H处开始写指令MOV AH,2MOV DL, 57 ;57H 是“W ”的ASCII码INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功能;这3句合起来的功能是:显示DL中的字符MOV DL, 49INT 2 1MOV DL, 4EINT 21MOV DL, 44INT 2 1MOV DL, 4FINT 2 1MOV DL, 57INT 2 1MOV DL, 53INT 2 1INT 3 ;功能是产生一个断点,不要省略(4)输入U 命令反汇编上面的程序:-U 100问:这里100代表什么(5)输入G命令连续运行上面的程序,记录运行结果:-G=100,57,53依次分别改为574F4E57 (6)输入E命令把上面程序中的数据,49,,44,,45:,,45,4C43,4F4D,-E 103 回车(以下同)-E 10710B-E-E 10F113-E117-E11B-E(7)输入D命令查看程序机器码的存放情况:-D 100 11E ;看从100开始到11E的机器码(8)输入G命令再连续运行程序,并记录运行结果:-G=100(9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各命令的运行结果:-T=100 回车-G=100 106 回车-G=100 10A 回车-G=100 10E 回车-G=100 11E 回车注意:下面第2—第8段程序是7个实用的小程序,若不小心打错指令,可以这样修改:例如:CS:0100 B300 MOV BL,00102 53 PUSH BX0103 B220 LP1: MOV DL,20要修改“PUSH BX”,因为这条指令的IP是0102,所以按以下操作:-A 0102 回车,然后把正确的指令打入,“-A ”是汇编指令。

如果要查看0100以后的指令及相应的机器代码,可以-U 0100 回车,能够看到CS:0100开始的指令及相应的机器代码。

“-U ”是反汇编若发现有误用,用“-A XXXX 回车”,重打这条指令即可2.编制一个能在CRT上连续显示A,B,C,D······Z大写英文字符的源程序,并在源程序下汇编调试机运行。

参考源程序(DEBUG调试环境中,源程序的十六进制数后面不写H):CS:0100 B300 MOV BL,00102 53 PUSH BX0103 B220 LP1: MOV DL,200105 B402 MOV AH,020107 CD21 INT 21BXPOP 5B 0109010A 88D8 MOV AL,BLALFEC0 010C INCCMP AL,1B3C1B 010EJNZ 0110 LP2(0114) ;不能写LP2,应写750201140112 B001MOV AL,01LP2: 88C3 MOV BL,AL01140116 53 PUSH BX ;ADD AL,40 0440 011788C2 0119 MOV DL,ALB402 MOV AH,02 011B011D CD21 21 INTMOV 011F B 9FFFF CX,FFFF DEC CXDL:0122 490123 75FD JNZ DL(0122);不能写DL,应写01220125 EBDC JMP LP1(0103);按CTRL+C,可中止程序运行。

运行正确后,改写程序为0,1,2,3,4,5,7,8,9的循环显示。

3.编制一个3字节压缩BCD加法源程序若要实现123456+456789,根据低地址放低字节,高地址放高字节原则,请用E命令在DS:1000-1002单元正确存放被加数123456,在DS:1010-1012单元正确存放加数456789。

参考程序如下:CS:0200 BE0010 MOV SI,10000203 BF1010 MOV DI,10100206 BB2010 MOV BX,10200209 B103 MOV CL,3020B B500 MOV CH,0020D F8 CLC020E8A04 MAD: MOV AL,[SI]0210 1205 ADC AL,[DI]0212 27 DAA0213 8807 MOV [BX],AL0215 46 INC SI0216 47 INC DI0217 43 INC BX0218 E2F4 LOOP MAD(020E)021A F4 HLT运行结果:[1020]=______ [1021]=______ [1022]=______ SI=______ DI=______ BX=_____相加后结果是:_________________F标志:O=______ S=______ Z=______ A=______ P=______ C=______注意:按CRT的实际显示填写。

(参考书P502)结果会如何DAA的作用,如果没有DAA思考:4.一字节十六进制数转换为ASCII码(只考虑大写字母)用E命令在DS:1000单元中存放十六进制数5A调试运行下面程序:CS:0300 8D360010 LEA SI,[1000]0304 8D3E2010 LEA DI,[1020]0308 8A04 MOV AL,[SI]030A 240F MOV BL,AL030C 240F AND AL,0F030E E80E00 CALL CHANG(031F)0311 80E30 AND BL,F00314 B90400 MOV CX,40317 D2EB SHR BL,CL0319 88D8 MOV AL,BL031B E80100 CALL CHANG(031F)031E F4 HLT031F 3C09 CHANG: CMP AL,090321 7602 JBE AD30(0325)0323 0407 ADD AL,070325 0430 AD30: ADD AL,300327 8805 MOV [DI],AL0329 47 INC DI032A C3 RET运行结果:[1020]=______ [1021]=______思考:NOP 是空操作指令,若在ADD AL,07后面,加一条NOP,结果会如何5、搜索字符串结束标志,统计搜索的字符个数用E命令在DS:1000开始的单元中存放若干个ASCII字符,如:30,31,32……39,0D。

(0D 作为字符串结束标志),调试运行下面程序CS: 0100 8D3E0010 LEA DI,[1000]0104 B200 MOV DL,00106 B00D MOV AL,0D0108 AE AGAIN: SCASB ;书P150,AL减去[DI],INC DI0109 7404 JE DONE(010F)010B FEC2 INC DL010D EBF9 JMP AGAIN(0108)010F 8D1E2010 DONE: LEA BX,[1020]0113 8817 MOV [BX],DL0115 F4 HLT运行结果:___________单元,该单元的值是___________搜索的字符个数存放在.AL=__________ BX=__________ DL=__________思考:把SCASB换成通用指令,如何改6、编制一个将N个带符号的正、负数分开的源程序。

设N=10,用E命令在DS:1000-1009单元存放10个数(1字节):01,02,03,04,06,FF,80,81,06,07将该数据块正、负数分开,正数放在1010为首地址的单元中,负数放在1020为首地址的单元中。

参考程序:CS: 0300 BE0010 MOV SI,10000303 BF1010 MOV DI,10100306 BB2010 MOV BX,10200309 B90A00 MOV CX,000A030C AC G1: LODSB ;书P150,[SI]送给AL;INC SIAL,80020D A880 TESTMINUS(0314) JNZ 030F 7503;INC DI,AL送给[DI];书P1500311 AA STOSBJMP AGAIN(0319)0312 EB05BX, DI0314 887DF MINUS: XCHGSTOSBAA 0316BX, DI87DF XCHG 0317CX49 AGAIN: DEC 0319G1(030C) JNZ 030A 75F0HLT 031C F4运行结果:[1014]=_____ [1013]=_____ [1010]=_______ [1011]=______ [1012]=______ [1022]=_____ [1021]=_____ [1015]=_______ [1016]=______ [1020]=______),程序能更简洁吗思考:二条XCHG作用是什么如果不用STOSB(功能见书P150个ASCII字符进行偶校验的源程序。

7、编制一个将N ASCII字符单元放1000—10078个设N=8,用E命令在DS:,44,42,4341 31,32,33,34,参考程序:SI,[1000] LEA CS: 0400 8D360010BX,[1010] LEA 0404 8D1E1010CX,8 MOV 0408 B90800AGAIN: LODSB 040B ACAND AL,AL 040C 20C0NEXT(0417) JPE 7A07 040EAL,80 OR 0410 0C80MOV [BX],AL 0412 8807BX INC 0414 43LP1(041A) EB03 0415 JMP[BX],ALMOV NEXT: 8807 04170419 43 INC BXDEC 041A LP1: 49 CXAGAIN(040B) 041B JNZ 75EEHLT F4 041D运行结果:1000—1007单元内容:___________________________________________1010—1017单元内容:___________________________________________改上述程序进行奇校验,写出运行结果:1000—1007单元内容:___________________________________________1010—1017单元内容:___________________________________________8、找出无序的有符号数中的最小值和最大值用E命令在DS:1000—100A中存放11个数:0A,80,84,82,83,81,01,02,05,04,03,其中0A为数列的个数。

相关文档
最新文档