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

实验一初级程序的编写与调试一、实验目的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、系统组成A、CPU8088CPU。
B、系统存储器EEPROM、SRAM。
C、接口芯片及实验模块8250、8251、8253、8255、8259、8279、ADC0809、DAC0832、RAM6116、直流电机、步进电机模块、LED显示模块、键盘单元、音响模块、继电器模块、开关量输出及0-1指示模块、单脉冲触发器等。
D、外设接口外接实验扩展板接口。
E、系统电源带双重保护功能的开关电源。
2、系统功能与特点A、该系统是基于DOS系统的,具有DOS操作系统内核;B、该系统能使用通用键盘作为基本的输入工具;C、该系统可以进行联机调试;也可单独处于脱机状态调试;脱机状态时可以进行类似DOS的DEBUG调试;D、该系统可以在源程序级进行调试;E、该系统功能齐全,既可进行上位机单独的软件仿真调试,也可进行下位机的脱机调试,也可联机进行通信调试;F、该系统的调试命令与DOS下的DEBUG调试器的命令相同,没有额外的调试命令,用户无需学习机器独特的命令。
3、系统资源分配系统监控区:0C0000H-0FFFFFH;程序调试区:10FB0H-20FAFH;中断向量区:00000H-0003FFH;BIOS数据区:00400H-005FFH;系统RAM扩展:80000H-80800H。
4、注意事项A.进行程序调试时,应该注意脱机和联机的区别,对同一个实验,脱机和联机的程序应不相同;B.进行联机调试的时候,如果要用到DS,请将数据段地址设为110BH;C.由于使用的是RS_232接口,因此,联机调试时程序的运行可能会比较慢,请用户进行联机调试的时候操作不要过快;D.联机调试时,全速运行将会返回一条“调试失败”的信息,用户不用理会,此时程序处于全速运行状态,如果想继续进行其它程序的调试,将系统复位后重新进行程序的下载方可调试;E.进行联机调试时,请不要调用DOS的INT 21H中断服务的返回系统功能调用,否则将无法进行下一步的调试;F.进行联机调试时,请不要设置多个段进行调试,否则系统认为调试无效而导致系统“死机”;G.进行程序调试时,请不要使用远跳转指令,否则将导致系统“死机”;H.进行中断调试实验时,在单步跟踪情况下,监控程序将无法进行中断服务程序。
微机原理实验指导书

实验1 数据传送实验目的掌握8086指令系统的数据传送指令及8086的寻址方式利用调试工具来调试汇编语言程序实验设备PC微型计算机一台实验预习要求:复习8086指令系统的数据传送指令及8086的寻址方式学习TD.EXE的使用方法实验内容1:通过下面的程序段输入和执行来熟悉TD.EXE的使用,通过显示屏观察程序的执行情况。
练习程序段如下:MOV BL, 88HMOV CL, BLMOV AX, 9999HMOV DS:[0002H], AX操作步骤:1、启动TD.EXE方法1 直接打开BIN文件夹下TD.EXE文件,方法2 把BIN 文件夹放在根目录下,如在:D:\BIN,打开“开始—附件—命令提示符”用CD命令使当前目录为D:\BIN 然后输入TD 或TD.EXE2、输入程序段把光标移到CS:0100H处开始输入程序在光标处直接输入练习程序段,键入时屏幕上会弹出一个输入窗口,在这个窗口中输入程序段3、执行程序段按F8单步执行程序段,观察寄存器内容的变化情况和内存单元DS:[0002H]的内容变化情况实验内容2:MOV AX, 1111HMOV BX, 2222HMOV CX, 3333H第一种出栈方式PUSH AXPUSH BXPUSH CX第二种出栈方式PUSH BXPUSH CXPUSH AX第三种出栈方式PUSH CXPUSH BXPUSH AX操作步骤:1、启动TD.EXE2、输入程序段把光标移到CS:0100H处开始输入程序在光标处直接输入练习程序段,键入时屏幕上会弹出一个输入窗口,在这个窗口中输入程序段3、执行程序段按F8单步执行程序段,观察寄存器内容的变化情况和内存单元DS:[0002H]的内容变化情况实验报告要求:1、写明本次实验的执行结果,填好表1-12、设置各寄存器及存储单元的内容如下BX=0010H , SI=0001HDS:[0010H]=12H, DS:[0011H]=34H, DS:[0012H]=56H, DS:[0013H]=78H, DS:[0014H]=9AH, DS:[0015H]=0ABH, DS:[0016H]=0BCH说明下列各条指令执行完后AX寄存器中的内容,上机验证(观察寄存器和TD数据区—在窗口的左下角)并填好表1-2(注:输入下列指令前应先用MOV指令把各寄存器和在存储单元的内容设置好)(1)MOV AX, 1200H(2)MOV AX, BX(3)MOV AX, [0010H](4)MOV AX, [BX](5)MOV AX, 0006H[BX](6)MOV AX, [BX][SI](7)MOV AX, 0003H[BX][SI]实验2 算术逻辑运算及移位操作实验目的熟悉算术逻辑运算指令和移位指令的功能了解标志寄存器的各标志位的意义和指令执行对它的影响利用调试工具来调试汇编语言程序实验设备PC微型计算机一台实验预习要求:复习8086指令系统中的算术逻辑类指令和移位指令按照题目要求在实验前编写好实验中的程序段实验内容1:打开TD.EXE输入下面的程序段,观察标志寄存器区的标志位的变化,说明执行下列哪些指令时标志位变化了,哪些指令标志位没有变化(标志位变化时亮白显示),大家也可以用这操作步骤:1、启动TD.EXE2、输入程序段3、把光标移到CS:0100H处开始输入程序在光标处直接输入练习程序段,键入时屏幕上会弹出一个输入窗口,在这个窗口中输入程序段4、执行程序段按F8单步执行程序段,观察寄存器内容的变化情况和各标志位的变化情况实验报告要求:1、填好表2-12、说明ADD SUB AND OR NOT 指令对标志位的影响实验3 程序设计、调试和DOS功能调用实验目的熟悉在PC上汇编程序的建立、汇编、连接、执行、调试的全过程学习提示信息的显示和传送指令、加减1指令和串操作指令的用法。
微机原理实验指导书

实验一数据传送一、实验目的1、熟悉SH51仿真器的使用方法。
2、练习设计简单的程序。
3、掌握8031片内RAM和片外RAM的数据传送的方法,从而了解这两部分存储器的特点二、实验设备和器件PC一台、DP-51PROC单片机实验仪一台、仿真器一台。
三、实验内容将8031内容RAM40H—4FH置初值00H—0FH,然后将40H—4FH 的内容传送到外RAM4800H—480FH,再将4800H—480FH传回到内部RAM50H—5FH。
设置断点B1、B2、B3,每运行到断点时检查相应的CPU现场和存储单元的内容。
四、实验步骤1、向机器输入程序2、运行程序至第一个断点B1,检查内容RAM40H—4FH单元的内容及累加器A 的内容;3、运行程序至第二个断点B2,检查RAM4800H—480FH单元的内容及累加器A、数据指针DPTR的内容;4、运行程序至第三个断点B3,检查内容RAM50H—5FH单元的内容及累加器A、数据指针DPTR的内容;五、实验程序ORG 0000HSTART: LJMP MAINORG 0040HMAIN: MOV R0, #40HMOV R2, #10HCLR AA1: MOV @R0, AINC R0INC ADJNZ R2, A1 B1: MOV R0, #40HMOV DPTR, #4800HMOV R2, #10HA2: MOV A, @R0MOVX @DPTR, AINC R0INC DPTRDJNZ R2, A2B2: MOV R0, #50HMOV DPTR, #4800HMOV R2, #10HA3: MOVX A, @DPTRMOV @R0, AINC R0INC DPTRDJNZ R2, A3B3: SJMP $END实验二并行口一、实验目的:通过实验了解8031并口输入方式和输出方式的工作原理和编程方法。
二、实验设备及器件:PC一台、DP-51PROC单片机实验仪一台、仿真器一台。
微机原理实验指导书(修改1023)

微机原理实验指导书华中科技大学计算机学院武汉豪申光电新技术有限公司目录微机原理实验 (3)第一章16位汇编语言编程验 (3)实验一系统认识实验 (3)实验二分支程序设计实验 (6)实验三循环程序设计实验 (9)实验四排序程序设计实验 (12)实验五子程序设计实验 (15)微机接口实验 (19)第一节并行接口实验(8255芯片实验) (19)实验一8255并行接口实验 (19)第二节定时/计数实验(8253芯片实验) (26)实验二音乐发声器接口实验 (26)第三节串行通信接口实验(8251芯片实验) (33)实验三 RS-232标准全双工查询方式异步串行通信实验 (34)第四节A/D D/A转换器接口实验 (42)实验四查询方式A/D转换器接口实验(ADC0809) (42)实验五 D/A函数波形发生器接口实验(DAC0832) (49)微机原理实验第一章16位汇编语言编程验实验一系统认识实验⑴实验目的掌握在MF平台中汇编程序的编写、调试方法。
⑵实验内容基本实验将存储区BUF1中的内容复制到BUF2中。
⑶实验步骤(一)方式1(Debug方式)1.在MF2KP环境下输入汇编程序,编译、连接,生成.exe文件。
2.启动调试程序(Debug)。
3.在程序的退出处设置断点,利用Add Watch命令查看BUF2中的内容是否正确。
(二)方式2(人-机交互方式)1.在MF2KP环境下输入汇编程序,编译、连接、运行。
2.按提示输入数据,在屏幕显示的结果中查看BUF1,2中的内容是否正确。
3.输入不同的字符串,可得到不同的结果。
⑷实验资源配置IBMPC微机,Win2000操作系统,MF2KP微机原理实验集成开发环境。
⑸实验软件的编程◇实验流程图如图1.1.1所示将存储区BUF1中的内容复制到BUF2中的程序主功能模块如图1.1.1中的虚线框中所示。
◇实验参考程序如下所示;*--------------------------------------------------* ;* Aexp1.asm(汇编语言编程认识实验) * ;* Copyright (c) 2002 by HUST * ;* 程序调试:在EXIT处设置断点,利用Add Watch命令 * ;* 查看BUF1和BUF2的内容是否正确 * ;*-------------------------------------------------* DATA SEGMENTBUF1 DB 'MASM HELLO WORLD'COUNT EQU $-BUF1BUF2 DB20DUP(?)DATA ENDSSTACK1 SEGMENT STACKDB20DUP(?)STACK1 ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK1,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET BUF1 ;建立源地址指针MOV DI,OFFSET BUF2 ;建立目标地址指针MOV CX,COUNT ;字节数送入CX寄存器L1: MOV AL,[SI] ; 取源数据一个字节送入AL中MOV [DI],AL;将源数据送入目标地址单元中INC SIINC DIDEC CXJNZ L1 ;判断是否传送完毕EXIT: MOV AH,4CHINT21HCODE ENDSEND START⑹实验要求◇按要求完成实验得出正确结果.◇试着自己写出人机对话方式的汇编程序.◇完成实验报告实验二分支程序设计实验⑴实验目的掌握分支程序的结构。
微机原理实验指导书

目录实验一并行接口8255应用实验 (1)实验二交通灯模拟控制实验 (5)实验三可编程定时器8254应用实验 (9)实验四8254控制继电器实验 (13)实验五DAC0832数模转换实验 (17)实验六ADC0809模数转换实验 (21)实验七串行通信8251应用实验 (25)实验一并行接口8255应用实验一、实验目的1.掌握8255工作方式0的使用方法;2.掌握8255I/O口的输入输出使用方法;3.了解8255、电平开关、LED发光二极管的电路连接。
二、实验内容1、逻辑电平开关和LED显示电路如图1-1所示,8255的电路连接如图1-2所示。
2、利用8255C口作为并行数据的输入端(逻辑电平开关实现),A口作为并行数据的输出端(LED显示电路实现),当电平开关拨到上方时对应发光二极管亮,拨到下方时对应发光二极管灭,编写程序。
图1-1 逻辑电平开关和LED显示电路图1-2 8255接线电路三、接线方案PC0~PC7/8255 接K0~K7/逻辑电平开关PA0~PA7/8255 接L0~L7/LED显示CS/8255 接Y1/IO地址图1-3实验线路四、编程提示及流程图1、A口地址—288H;B口地址—289H;C口地址—28AH;8255控制寄存器端口地址—28BH。
2、参考程序流程图如图1-4所示。
图1-4 参考程序流程图五、实验步骤1、连接USB通信电缆和电源线;2、根据图1-3实验线路进行电路连接;3、打开“HQFC-A微机接口”应用程序,新建或打开实验程序;4、点击“编译”,并确保实验程序没有语法错误;5、点击“构建”,将目标文件生产可执行文件(后缀为EXE);6、点击“重构运行”,可执行文件(后缀为EXE)下载到实验设备中运行;7、观察实验现象,并记录。
若实验现象有误请重复第4~6步。
六、参考程序;*******************************;;* 8255方式0的C口输入,A口输出 *;;*******************************;data segmentio8255a equ 288hio8255b equ 28bhio8255c equ 28ahdata endscode segmentassume cs:codestart:mov ax,datamov ds,axmov es,axmain:mov dx,io8255b ;设8255为C口输入,A口输出mov al,() ;计算控制字out dx,alinout: mov dx,() ;从C口输入一数据in al,dxmov dx,() ;从A口输出刚才自C口out dx,al ;所输入的数据jmp inout ;跳转,则继续自C口输入,A口输出code endsend start七、思考题1、根据程序要求补充实验程序,并执行程序观察现象;2、修改程序,电平开关拨到上方时发光二极管灭,拨到下方时发光二极管亮。
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.依据程序流程图编写程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据传送实验目的 :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 单元中存放。
试分别用 8086 的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。
6、设 AX 寄存器中的内容为 1111H , BX 寄存器中的内容为 2222H , DS : 0010H 单元中的内容为 3333H 。
将 AX 寄存器中的内容与 BX 寄存器中的内容交换,然后再将 BX 寄存器中的内容与 DS : 0010H 单元中的内容进行交换。
试编写程序段,并上机验证结果。
7、设 (DS) = 1000H , (ES) = 2000H ,有关存储器的内容如图 1、5 所示。
要求将 DS 段的内容传送到 AX 寄存器, ES 段的内容传送到 BX 寄存器,试编写程序段。
图 1 第 7 题图实验报告要求 :1、写明本次实验内容与实验步骤。
2、整理出运行正确的各题源程序段与运行结果。
3、写出第 3 题中改正后的正确指令。
4、小结 Turbo Debugger 的使用方法。
实验二算术逻辑运算及移位操作实验目的 :1.熟悉算术逻辑运算指令与移位指令的功能。
2.了解标志寄存器各标志位的意义与指令执行对它的影响。
实验预习要求:1.复习 8086 指令系统中的算术逻辑类指令与移位指令。
2.按照题目要求在实验前编写好实验中的程序段。
实验任务:1、实验程序段及结果表格如表 2 :表 22.用 BX 寄存器作为地址指针,从 BX 所指的内存单元 (0010H) 开始连续存入三个无符号数 (10H 、 04H 、 30H) ,接着计算内存单元中的这三个数之与,与放在 0013H 单元中,再求出这三个数之积,积放 0014 单元中。
写出完成此功能的程序段并上机验证结果。
3.写出完成下述功能的程序段。
上机验证您写出的程序段,程序运行的最后结果(AX) = ?(1) 传送 15H 到 AL 寄存器;(2) 再将 AL 的内容乘以 2 ;(3) 接着传送 15H 到 BL 寄存器;(4) 最后把 AL 的内容乘以 BL 的内容。
4.写出完成下述功能的程序段。
上机验证您写出的程序段,程序运行后的商= ?(1) 传送数据 2058H 到 DS : 1000H 单元中,数据 12H 到 DS : 1002H 单元中;(2) 把 DS : 1000H 单元中的数据传送到 AX 寄存器;(3) 把 AX 寄存器的内容算术右移二位;(4) 再把 AX 寄存器的内容除以 DS : 1002H 字节单元中的数;(5) 最后把商存入字节单元 DS :1 003H 中。
5.下面的程序段用来清除数据段中从偏移地址 0010H 开始的 12 个字存储单元的内容(即将零送到这些存储单元中去)。
(1) 将第 4 条比较指令语句填写完整(划线处)。
MOV SI , 0010HNEXT : MOV WORD PTR[SI] , 0ADD SI , 2CMP SI ,JNE NEXTHLT(2) 假定要按高地址到低地址的顺序进行清除操作(高地址从 0020H 开始),则上述程序段应如何修改?上机验证以上两个程序段并检查存储单元的内容就是否按要求进行了改变。
6、输入并运行表 3 中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能就是什么。
表 3实验报告要求1、整理出完整的实验程序段与运行结果。
2、回答题目中的问题。
3、简要说明 ADD 、 SUB 、 AND 、 OR 指令对标志位的影响。
4、简要说明一般移位指令与循环移位指令之间的主要区别。
实验三串操作实验目的:1.熟悉串操作指令的功能。
2.了解串操作指令的使用方法。
实验预习要求;1.复习 8086 指令系统中的串操作类指令。
2.按照题目要求在实验前编写好实验中的程序段。
实验任务 :1、输入以下程序段并运行之,回答后面的问题。
CLDMOV DI , 1000HMOV AX , 55AAHMOV CX , 10HREP STOSW上述程序段执行后:(1) 从 DS : 1000H 开始的 16 个字单元的内容就是什么?(2) ( DI ) = ?( CX ) = ?,并解释其原因。
2、在上题的基础上,再输入以下程序段并运行之,回答后面的问题。
MOV SI , 1000HMOV DI , 2000HMOV CX , 20HREP MOVSB程序段执行后:(1) 从 DS : 2000H 开始的 16 个字单元的内容就是什么?(2) ( SI ) = ?( DI ) = ?( CX ) = ?,并分析之。
3、在以上两题的基础上,再输入以下三个程序段并依次运行之。
程序段 1 :MOV SI , 1000HMOV DI , 2000HMOV CX , 10HREPZ CMPSW程序段 1 执行后:(1) ZF= ?根据 ZF 的状态,您认为两个串就是否比较完了?(2) ( SI ) = ?( DI ) = ?( CX ) = ?,并分析之。
程序段 2 :MOV [2008H] , 4455HMOV SI , 1000HMOV DI , 2000HMOV CX , 10HREPZ CMPSW程序段 2 执行后:(1) ZF= ?根据 ZF 的状态,您认为两个串就是否比较完了?(2) ( SI ) = ?( DI ) = ?( CX ) = ?,并分析之。
程序段 3 :MOV AX , 4455HMOV DI , 2000HMOV CX , 10HREPNZ SCASW程序段 3 执行后:(1) ZF= ?根据 ZF 的状态,您认为在串中就是否找到了数据 4455H ?(2) ( SI ) = ?( DI ) = ?( CX ) = ?,并分析之。
4、从 DS : 1000H 开始存放有一个字符串”This is a string” ,要求把这个字符串从后往前传送到 DS : 2000H 开始的内存区域中(即传送结束后,从 DS : 2000H 开始的内存单元的内容为”gnirts a si sihT” ),试编写程序段并上机验证之。
实验报告要求 :1、整理出完整的实验程序段与运行结果,对结果进行分析。
2、简要说明执行串操作指令之前应初始化哪些寄存器与标志位。
3、总结串操作指令的用途及使用方法。
实验四字符及字符串的输入与输出实验目的 :1.熟悉如何进行字符及字符串的输入输出。
2.掌握简单的 DOS 系统功能调用。
实验预习要求 :1.复习系统功能调用的 1 、 2 、 9 、 10 号功能。
2.按照题目要求预先编写好实验中的程序段。
实验任务 :1、输入以下程序段并用 F8 键单步运行,执行 INT 21H 指令时,在键盘上按“ 5 ”键。
MOV AH , 1INT 21H(1) 运行结束后,( AL ) = ?它就是哪一个键的 ASCII 码?(2) 重复运行以上程序段,并分别用“ A ”、“ B ”、“ C ”、“ D ”键代替“ 5 ” 键,观察运行结果有何变化?2、在 DS : 1000H 开始的内存区域设置如下键盘缓冲区:DS : 1000H 5 , 0 , 0 , 0 , 0 , 0 , 0然后输入以下程序段并用 F8 键单步运行,执行 INT 21H 指令时,在键盘上键入“ 5 ”、“ 4 ”、“ 3 ”、“ 2 ”、“ 1 ”、〈回车〉这六个键。
LEA DX , [1000H]MOV AH , 0AHINT 21H程序段运行完后,检查 DS : 1000H 开始的内存区域:(1) DS : 1001H 单元的内容就是什么?它表示了什么含义?(2) 从 DS : 1002H 开始的内存区域中的内容就是什么?其中就是否有字符“ 1 ” 的 ASCII 码?为什么?3、输入以下程序段并运行之。
MOV DL ,‘ A 'MOV AH , 2INT 21H(1) 观察屏幕上的输出,就是否显示了“ A ”字符?(2) 分别用“ # ”、“ X ”、“ Y ”、“ $ ”、“ ? ”代替程序段中的“ A ”字符,观察屏幕上的输出有何变化。
(3) 分别用 0DH 、 0AH 代替程序段中的“ A ”字符,观察屏幕上的输出有何变化。
(4) 用 07H 代替程序段中的“ A ”字符,观察屏幕上有无输出?计算机内的扬声器就是否发出“哔”的声音?4、要在屏幕上显示一个字符串“ Hello, world ”,写出该字符串变量的定义语句与显示这个字符串的程序段。
上机验证之。
5、按 6 行× 16 列的格式顺序显示 ASCII 码为 20H 到 7FH 之间的所有字符,即每 16 个字符为一行,共 6 行。