微机原理与接口技术实验指导书.doc
《微机原理与接口技术实验指导书.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验指导书.doc(36页珍藏版)》请在三一办公上搜索。
1、实验一 软件基础(1)报告手写一 、实验目的 1、学习使用CodeView调试运行汇编语言程序。 2、学习指令代码及其分段结构与寻址方式。 3、学习数据传送指令。二 、实验仪器及设备 1、MASM6.11宏汇编软件一套 2、微型计算机一台三 、实验内容 1、在CodeView的Command窗口中,用A命令汇编习题1.1的指令,直接在显示窗口中观察各条指令的反汇编结果并作记录。 2、用A命令汇编习题1.2的指令,用T命令跟踪每一条指令,观察每条指令的执行情况并作记录。 3、调试习题1.3的程序。 提示:操作开始前,先用N命令设置调试命令所用参数的缺省数制。四、示例 设计说明程序名 DISP程序
2、功能 在屏幕上分别显示数字3和4对应的阿拉伯符号算法说明 用两次02号系统功能调用,预先将3和4送入DL程序框图 图8.1源程序:DISP:MOV DL,33H MOV AH,02H INT 21H MOV DL,34H MOV AH,02H INT 21H INT 20H调试说明:系统功能调用指令INT 21H和INT 20H不能用T命令跟踪,可以用G命令加上地址范围的方式执行。* * * CodeView调试程序举例 * * * 1、进入CodeView调试环境方法一:、点击操作系统桌面的PWB快捷图标进入 PWB主界面,在菜单File下选中Dos Shell项进入Dos环境;、在目录MA
3、SM611BIN下键入指令: CV *.EXE(该目录下任何一个EXE文件均可),启动CodeView,在该环境下对所调入的EXE文件进行修改与调试。 方法二:、从桌面的开始菜单进入Dos环境,转入MASM611BIN目录下;、 键入指令: CV *.EXE,启动CodeView。 图8.2是CodeView的窗口调试界面的图例:1、 以下各操作命令均在CodeView调试界面的Command窗口中以命令行的方式键入,用来对EXE文件进行修改与调试。g 设置基数n16 说明:N为基数设置命令,用来设置调试命令所用参数的缺省数制(但N命令不会改变数据的显示方式)。g 输入新的指令a 说明:A为汇
4、编命令,将用户输入的符号指令汇编为机器代码,存入指定地址开始的内存单元。194E:0000 mov dl,33 机器码:B233194E:0002 mov ah,2 机器码:B402(显示dl输出,33是ASCII编码)194E:0004 int 21 机器码:CD21194E:0006 mov dl,34194E:0008 mov ah,2194E:000A int 21194E:000C int 20194E:000E nop194E:000F g 连续运行前三条指令g 6 (6代表偏移地址) 说明:G为运行命令,从当前CS:IP所指的指令(即mov dl,33)开始,一直执行到指定地址(
5、即194E:0006)。g 查看前三条指令的执行结果按F4在Dos界面下可以看到程序的执行结果,按Esc键返回调试界面g 单步执行第4条指令t 说明:T为跟踪命令,从当前CS:IP所指指令开始单步执行,若遇到CALL或INT指令(DOS系统调用INT21H和INT20H除外),则会跟踪进入相应过程或中断服务程序的内部。T命令为顺序跟踪,改变顺序时应输入起始地址。g 观察寄存器中的内容r 说明:R命令用以显示和修改寄存器的值,还可以显示8个标志位的值。如果只显示某一个寄存器内容,则在R后面加寄存器名,例如:r dxDX 0034rip 修改ip的地址(ds,cs也可修改)g 单步执行第5条指令t
6、g 观察寄存器AH中的内容r ahAH 02:g 连续运行(INT 20返回)gProcess 0x193D terminated normally (52)g 查看执行结果同样,按F4可以看到程序的执行结果,按Esc键返回调试界面。1 以下是在显示窗口看到的反汇编信息(指令地址) (机器码) ( 助 记 符 )194E:0000 B233MOVDL,33 194E:0002 B402MOVAH,02 194E:0004 CD21INT21 194E:0006 B234MOVDL,34 194E:0008 B402MOVAH,02 194E:000A CD21INT21 194E:000C C
7、D20INT20 194E:000E 90NOP 194E:000F BB1000MOVBX,0010 1 以下是在寄存器窗口看到的内容AX=0234BX=0000CX=0000DX=0034SP=0000BP=0000SI=0000DI=0000DS=193DES=193DSS=194DCS=194EIP=000EFL=3202NV UP EI PLNZ NA PO NCL说明:L命令使由CV *.EXE命令调入的程序重新开始执行,之前对代码或数据所做的任何修改均将丢失。g 重新键入5条指令a194E:0000 mov dl,33194E:0002 mov ah,2194E:0004 int
8、 21194E:0006 int 20194E:0008 nop194E:0009 g 内存单元的显示与修改md cs:0 cs:8 说明:MD为内存显示命令,用来显示指定内存单元的值。194E:0000 B2 33 B4 02 CD 21 CD 20 90 .3.!. .me cs:1 说明:ME为内存修改命令,用来设置指定内存单元的值。194E:0001 33 (能直接修改194E:0001的值)3. 36 (能直接修改194E:0003的值)g 8Process 0x193D terminated normally (54)md cs:0 cs:8194E:0000 B2 36 B4 0
9、2 CD 21 CD 20 90 .6.!. .注:对比修改前后内存单元CS:0001中数值,可以看到已经把33H修改为36H。g 在程序中插入指令的操作La0 说明:从CS:0000开始汇编指令。194E:0000 mov dl,33194E:0002 mov ah,2194E:0004 int 21194E:0006 int 20194E:0008 nop194E:0009 g 内存内容的复制或传送mm cs:6 cs:8 cs:9 说明:MM为内存传送命令,用来将一个内存区的数据或代码传送到另一个内存区。1 从显示窗口可以看到传送以后的结果194E:0000B233MOVDL,33 19
10、4E:0002B402MOVAH,02 194E:0004CD21INT21 194E:0006CD20INT20 194E:000890NOP 194E:0009CD20INT20 194E:000B90NOP 194E:000DD252BBRCLBYTE PTR BP+SI-45,CL a6 说明:从CS:0006处开始汇编指令。194E:0006mov cx,f194E:0009 1 以下是在显示窗口中看到的插入指令以后代码段的情况194E:0000B233MOVDL,33 194E:0002B402MOVAH,02 194E:0004CD21INT21 194E:0006B90F00M
11、OVCX,000F194E:0009CD20INT20 194E:000B90NOP 194E:000C32D2XORDL,DL 五 、上机调试的习题8.1 分别以二进制数形式和十六进制数形式写出以下指令的机器码,并在二进制数表示的机器码中标明其各个组成部分及其含义。 MOV AX,DX ADD CX,BX+8 SUB BX+SI,SI MOV AL,DL ADD CX,BX SBB DI,AL 8.2已知从2000H:7358H开始的4个 MOV AX,2000H 存储单元的内容顺序为: MOV DS,AX 36H 85H 43H 21H MOV DI,7348H 写出题中各指令的寻址方式及
12、各指令的 MOV AL,10H DI 执行结果。 MOV SS,DI+10H LEA BX,DI+10H LES CX,10H+DI 8.3已知DS=2000H,欲将2000H:7348H与2000H:735AH的内容互换。写出三个不同的程序段,分别用通用数据传送指令,交换指令及堆栈操作指令完成互换操作。 提示:题中的已知条件可用CodeView的MF命令、R命令直接写入相应的内存单元或寄存器。六 、预习要求1、熟悉CodeView调试环境和常用的调试命令。 2、预习报告: CPU内部寄存器的名称及其作用。 各种寻址方式,指令代码的分段结构。 数据传送指令。七 、实验报告 1、分析习题8.1中
13、每一条指令的字段结构与寻址方式。 示例 89D0 MOV AX,DX 100010 0 1 11 010 000 源寄存器寻址 D W MOD R R/M 字 源 目的 目的寄存器寻址 2、分析习题8.2中每一条指令应该完成的操作及实际结果。 示例 MOV AX,2000 指令操作 立即数送入AX 执行结果 AX=2000 3、习题8.3 程序采用的主要算法。 程序框图及源程序清单。 主要调试步骤、程序功能测试方案和测试结果。实验二 指令系统(算术运算指令)一 、实验目的1、 学习算术逻辑运算指令与堆栈操作指令。2、 学习标志寄存器的使用。3、 熟悉堆栈操作。4、 练习编写算术运算程序二 、实
14、验仪器及设备 1、MASM6.11宏汇编软件一套 2、微型计算机一台三 、实验内容1、 调试习题8.4的程序。2、 编写两位十进制数相加程序。被加数和加数均从键盘输入,相加结果在屏幕上显示。3、 编程提示:可参考使用示例中从键盘输入数据,显示数据及运算符号的有关程序段。四 、示例 两个一位十进制数相乘的程序EXA2在CodeView中观察并运行EXA2.EXE。C:MASM611BINCV EXA2.EXE1B06:0100 B23A MOV DL,3A1B06:0102 B402 MOV AH,021B06:0104 CD21 INT 21 ;显示 :1B06:0106 B401 MOV A
15、H,01 1B06:0108 CD21 INT 21 ;接收显示键入的数1B06:010A 240F AND AL,0F1B06:010C 88C3 MOV BL,AL ;转为BCD码送BL1B06:010F B22A MOV DL,2A 1B06:0110 B402 MOV AH,021B06:0112 CD21 INT 21 ;显示 *1B06:0114 B401 MOV AL,011B06:0116 CD21 INT 21 ;接收显示键入的数1B06:0118 240F AND AL,0F1B06:011A 88C7 MOV BH,AL ; 转为BCD码送BH1B06:011C B23D
16、 MOV DL,3D 1B06:011F B402 MOV AH,02 1B06:0120 CD21 INT 21 ;显示 =1B06:0122 88F8 MOV AL,BH1B06:0124 F6E3 MUL BL1B06:0126 D40A AAM ;两个十进制数相乘1B06:0128 88C3 MOV BL,AL ;乘积低位送BL1B06:012A 88E2 MOV DL,AH 1B06:012C 80C230 ADD DL,301B06:012F B402 MO AH,021B06:0131 CD21 INT 21 ;显示乘积高位1B06:0133 88DA MOV DL,BL1B06
17、:0135 80C230 ADD DL,30 1B06:0138 CD21 INT 21 ;显示乘积低位1B06:013A CD20 INT 20 ;返回DOS g 注:按F4切换到Dos界面,键入两个一位的十进制数,观察程序的执行结果,按Esc键返回调试界面。:8*9=72program terminated normally ;运行程序,8和9为键入数 q ;退出CodeViewC:MASM611BIN 说明:INT21在执行时改变AL的内容,因此在显示乘积高位之前,先将AL中的乘积低位送入BL。五 、上机调试的习题8.4写出下面程序段中每一条指令的执行结果,以及各程序段所实现的操作。(1
18、) SGWS: MOV AX,8514H MOV BX,3692H MOV CH,AH SUB AL,BL DAS XCHG AL,CH SBB AL,BH DAS MOV AH,AL MOV AL,CH (2) STMU: MOV CX,7A8FH MOV AX,6BC5H MOV BX,1000H MUL BX PUSH DX PUSH AX MOV AX,CX MUL BX POP CX MOV 3000H,CX POP CX ADD AX,CX MOV 3002H,AX ADC DX,00H MOV 3004H,DX六 、预习要求1、 熟悉算术逻辑运算指令的操作及其对标志寄存器的影响。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 指导书

链接地址:https://www.31ppt.com/p-2881982.html