华南理工大学信工微机实验一
- 格式:docx
- 大小:152.10 KB
- 文档页数:8
微型计算机实验一实验报告一、实验目的本次微型计算机实验的主要目的是让我们熟悉微型计算机的硬件组成,了解计算机各部件之间的连接和工作原理,并掌握基本的计算机组装和调试技能。
通过实际操作,提高我们对计算机系统的认识和动手能力,为今后的学习和工作打下坚实的基础。
二、实验设备与工具1、计算机主机箱、主板、CPU、内存、硬盘、显卡、声卡、网卡等硬件设备。
2、螺丝刀、镊子、防静电手环等工具。
三、实验内容1、了解计算机硬件组成打开计算机主机箱,观察主板、CPU、内存、硬盘、显卡、声卡、网卡等硬件设备的外观和安装位置。
学习各硬件设备的功能和作用,如 CPU 负责运算和控制,内存用于临时存储数据,硬盘用于长期存储数据等。
2、计算机硬件组装戴上防静电手环,防止静电对硬件设备造成损坏。
首先安装 CPU,将 CPU 对准主板上的插座,轻轻放下,然后扣紧CPU 插座的扳手。
安装内存,将内存插槽两端的卡扣掰开,将内存条对准插槽,用力按下,直到两端的卡扣自动扣紧。
安装硬盘,将硬盘固定在机箱的硬盘架上,然后连接数据线和电源线。
安装显卡,将显卡插入主板上的 PCIE 插槽,并用螺丝固定。
安装声卡和网卡,根据主板的接口类型,将声卡和网卡插入相应的插槽。
连接机箱前面板的线缆,包括电源按钮、重启按钮、指示灯、USB 接口等。
3、计算机硬件调试检查各硬件设备的安装是否牢固,连接是否正确。
接通电源,按下电源按钮,观察计算机能否正常启动。
如果计算机无法启动,根据报警声和指示灯的提示,查找故障原因并进行排除。
四、实验步骤1、准备工作清理实验台,将所需的硬件设备和工具摆放整齐。
阅读计算机硬件组装的相关资料,了解组装的流程和注意事项。
2、硬件组装按照上述步骤,依次安装 CPU、内存、硬盘、显卡、声卡、网卡等硬件设备,并连接好线缆。
3、硬件调试检查组装完成的计算机,确保没有遗漏的部件和连接错误。
接通电源,按下电源按钮,观察计算机的启动情况。
如果计算机无法启动,首先检查电源是否正常,然后检查各硬件设备的连接是否松动。
微机原理实验报告班 级:2012级电子科学与技术卓工班级电子科学与技术卓工班姓 名: 黄中一黄中一 学 号: 201236460273序 号:评阅分数:评阅分数:实验一一、实验目的1、学会如何建立汇编源文件ASM2、学会调用MASM 宏汇编程序对源文件进行汇编,获得目标程序宏汇编程序对源文件进行汇编,获得目标程序 OBJ 及LST 列表文件列表文件3、学会调用LINK 连接程序汇编后的目标文件OBJ 连接成可执行的文件连接成可执行的文件EXE 4、学会使用DEBUG 调试程序把可执行文件装入内存并调试运行,用D 命令显示目标程序,用U 命令对可执行文件反汇编,用G 命令运行调试。
命令运行调试。
二、实验设备装有MASM 软件的IBM PC 机三、实验内容1、汇编程序对源程序进行编译,生成扩展名为OBJ 的目标文件;连接程序是将目标程序和库文件进行连接、定位,生成扩展名为EXE 的可执行文件;调试程序是对目标文件进行调试,验证它的正确性。
是对目标文件进行调试,验证它的正确性。
2、DEBUG 程序各种命令的使用方法程序各种命令的使用方法功能功能命令格式命令格式 使用说明使用说明显示内存单元内容显示内存单元内容D 地址地址从指定地址开始显示40H 个字节或80H 个字节个字节 修改内存单元内容修改内存单元内容 E 地址地址先显示地址和单元内容等待输入修改的内容输入修改的内容检查和修改寄检查和修改寄存器的内容存器的内容R 显示全部寄存器和标志位及下条指令单元十六进制数码和反汇编格式和反汇编格式反汇编反汇编U 地址地址从指定地址开始反汇编16个或32个字节个字节 汇编汇编 A 地址地址从指定地址直接输入语句并从指定指定汇编装入内存从指定指定汇编装入内存跟踪跟踪 T =地址=地址 从指定地址开始逐条跟踪指令运行运行 G =地址=地址无断点,执行正在调试的指令执行正在调试的指令 退出退出Q退出DEBUG 返回DOS3、实验过程①、在edit 环境,写字板,记事本等中输入源程序。
华南理工大学数字通信原理实验思考题参考答案第一篇:华南理工大学数字通信原理实验思考题参考答案AMI、HDB3码实验1、说明AMI码和HDB3码的特点,及其变换原则。
回答:AMI码的特点:1、无直流成分,低频成分也少,高频成分少,信码能量集中在fB/2处;2、码型有了一定的检错能力,检出单个误码;3、当连0数不多时可通过全波整流法提取时钟信息,但是连0数过多时就无法正常地提出时钟信息。
变换规则:二进码序列中“0”仍编为“0”;而二进码序列中的“1”码则交替地变为“+1”码及“-1”码。
HDB3码的特点:1、无直流成分,低频成分也少,高频成分少,信码能量集中在fB/2处;2、码型有了一定的检错能力,检出单个误码;3、可通过全波整流法提取时钟信息。
变换规则:(1)二进制信号序列中的“0”码在HDB3码中仍编为“0”码,二进制信号中“1”码,在HDB3码中应交替地成+1和-1码,但序列中出现四个连“0”码时应按特殊规律编码;(2)二进制序列中四个连“0”按以下规则编码:信码中出现四个连“0”码时,要将这四个连“0”码用000V或B00V取代节来代替(B和V也是“1”码,可正、可负)。
这两个取代节选取原则是,使任意两个相邻v脉冲间的传号数为奇数时选用000V取代节,偶数时则选用B00V取代节。
2、示波器看到的HDB3变换规则与书本上和老师讲的有什么不同,为什么有这个差别。
回答:示波器上看到的HDB3编码器的输出P22点的波形比书本上的理论上的输出波形要延时5个码位。
原因是实验电路中采用了由4个移位寄存器和与非门组成的四连零测试模块去检测二进制码流中是否有四连零,因此输出的HDB3码有5个码位的延时。
3、用滤波法在信码中提取定时信息,对于HDB3码要作哪些变换,电路中如何实现这些变换。
回答:首先,对HDB3码进行全波整流,把双极性的HDB3码变成单极性的归零码,这个在电路上是通过整流二极管实现的;然后,把归零码经晶体管调谐电路进行选频,提取时钟分量;最后,对提取的时钟分量进行整形来产生定时脉冲。
课程名称:微机原理与应用课程设计
英文名称:Principles and Applications of Microcomputer
总学时:80 学分:5实验学时:一周
课程类别:学科基础课课程性质:综合实践
适用专业:信息工程,电子与信息工程,物理电子工程
授课实验室:微机实验室
课程设计部分
一、实验(上机)教学目的与基本要求
通过课程设计,使学生进一步巩固所学的知识,并将所学的内容加以综合运用。
将学生所学的理论与实际问题或应用相结合,进一步培养学生自主学习的能力,综合运用知识的能力,以及创新实践的能力。
二、实验(上机)教学方式与考核方式
教学方式:集中讲解与单独辅导相结合
考核方式:实验效果成绩(80%)与设计报告成绩(20%)进行综合评定
三、实验(上机)指导书和参考书
1.微型计算机原理与应用实验指导书机习题集。
华南理工大学电子与通信工程系陈忠强欧阳小容华南理工大学教材供应中心2002.1
2.TPC-2003A通用32位微机接口实验系统,学生用书,清华大学计算机系清华大学科教仪器厂2005年9月。
3.80X86/Pentium 微型计算机原理及应用吴宁主编,电子工业出版社,2003
四、主要仪器设备
1.PC机
2.TPC-2003A 通用32位微机接口实验系统(2005年-今),TDS-MD微机(2004年及以前)。
五、实验(上机)项目与内容提要
自行设计择课程设计的题目。
制订(修订):梁亚玲审核:曾衍辉。
“微机系统原理与接口技术”综合测试题一答案一、单项选择题1.(1)A (2)B2.B3.B4.D 注:8086中只有BX、BP、SI、DI可以用于这样的间接寻址,不过高档微机中其他寄存器也是可以的,这里着重考察8086。
5.C6.C7.(1)C (2)B8.(1)A (2)C9.B二、改错1.⨯堆栈操作应满足先进后出原则。
2.⨯CPU必须在执行完当前指令以后,才可以响应可屏蔽中断请求。
3.⨯8086CPU标志寄存器共有16位,其中只有9位有含义。
4.√(注:段内短转移只有直接形式,没有间接形式)三、填空题1.0D60H2.0FFFFH、0000H、0000H3.接口部件BIU、执行部件EU4.基本的输入/输出、选通的输入/输出、双向5.指令周期、总线周期、时钟周期6.NMI、INTR7.对端口的间接寻址方式、2558.1、2、AX , DX四、问答题略。
(第一题提示:IF标志位的用处。
)五、阅读程序并回答题1.0AA9AH、2233H (注:程序第三行显然应该是XCHG AX , BX)2.0000H、00FFH、0 六、编程:DATA SEGMENT AT 2000HORG 1000HDA TASRC DB 100DUP(?)ORG 1010HDA TADST DB 100DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA, ES:DATASTART: MOV AX , DA TAMOV DS , AXMOV ES , AX ; 因为用到串操作语句,ES必须进行初始化,当; 然在ASSUME语句中也必须说明MOV CX , 100 ; 串长度MOV SI , OFFSET DATASRCADD SI , CX ; 使DS:SI指向源串的最后一个字节MOV DI , OFFSET DA TADSTADD DI , CX ; 使ES:DI指向目的串的最后一个字节STD ; 设置串传送的方向为地址减量的方向REP MOVSB ; 字节串传送MOV AH , 4CHINT 21H ; 结束CODE ENDSEND START(注意1. 数据段中AT和ORG用法;2. 串传送的方向必须是地址递减的方向;3. 考试时编程题最好也写上必要的注释;如程序不能完成,至少也要画上流程图)七、8255编程。
数字信号处理matlab实验学院:电子与信息专业班级: 5学号:201130302068姓名:梁敏健实验名称:离散时间信号与系统分析、滤波器实验日期:2013.10实验1 离散时间信号与系统分析(2课时)题目一:以下程序中分别使用conv和filter函数计算h[n] = [3 2 1 -2 1 0 -4 0 3]和x[n] = [1 -2 3 -4 3 2 1]的卷积y和y1,并分析y和y1是否有差别代码:h = [3 2 1 -2 1 0 -4 0 3];x = [1 -2 3 -4 3 2 1];y = conv(h,x);n = 0:14;subplot(2,1,1);stem(n,y);xlabel('Time index n'); ylabel('Amplitude');title('Output Obtained by Convolution'); grid;x1 = [x zeros(1,8)];y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Time index n'); ylabel('Amplitude');title('Output Generated by Filtering'); grid;可见,y与y1没有差别。
题目二:编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。
要求分别用filter、conv、impz三种函数完成。
,,源代码:对,,单位冲激响应a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x1=[1 zeros(1,20)];y1filter=filter(b1,a1,x1);subplot(2,2,1);stem(n,y1filter);title('y1filter');xlabel('x');ylabel('y');title('impulse response generated by filter')x1_1=[1 zeros(1,10)];[h]=impz(b1,a1,10);y1conv=conv(h,x1_1);n=0:19;subplot(2,2,2);stem(y1conv) ;title('impulse response generated by conv')h=impz(b1,a1,21);subplot(2,2,3);stem([0:20], h);title('impulse response generated by impz') 结果:单位阶跃:a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x2=ones(1,21);y1filter=filter(b1,a1,x2);subplot(2,2,3);stem(n,y1filter);title('y1filter_step');xlabel('x');ylabel('y');title('impulse response generated by filter')x2=ones(1,21);[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21);n1=0:20;subplot(2,2,2);stem(n1,y1conv,'filled');title('y1conv');xlabel('n');ylabel('y1[n]');title('impulse response generated by conv')a=[1,0.75,0.125];b=1;h=impz(b,a,21);subplot(2,2,1);stem([0:20], h);title('impulse response generated by impz') 结果:对单位冲激响应:a2=1;b2=[0 0.25*ones(1,4)];n=0:9;x1=[1 zeros(1,9)];y2filter=filter(b2,a2,x1);subplot(2,2,1);stem(n,y2filter);title('y2filter');xlabel('x');ylabel('y')title('impulse response generated by filter')x2=[1 zeros(1,5)];[h]=impz(b2,a2,5);y2conv=conv(h,x2);subplot(2,2,2);stem(n,y2conv,'filled')title('impulse response generated by conv')h=impz(b2,a2,10);subplot(2,2,3);stem([0:9], h);title('impulse response generated by impz') 结果:单位阶跃a1=1;b1=[0 0.25*ones(1,4)];n=0:20;x1=ones(1,21);y2filter=filter(b1,a1,x1);subplot(2,2,1);stem(n,y2filter);title('y2filter_step');xlabel('x');ylabel('y');title('impulse response generated by filter')y2=conv(b1,x1);y2conv=y2(1:21);subplot(2,2,2);stem(n,y2conv,'filled');title('y2conv');xlabel('n');ylabel('y[n]');title('impulse response generated by conv')n=0:20;b=[0,0.25,0.5,0.75,ones(1,17)];a=1;h=impz(b,a,21);subplot(2,2,3);stem([0:20], h);title('impulse response generated by impz')题目三2N点实数序列N=64。
华南理⼯⼤学信号与系统实验报告Experiment ExportName:Student No:Institute:Dec 26, 2011Experiment Purposes1. Be familiar with the software Environment and Programming flow in MATLAB5.3.2. Learn how to draw the signal waveform and determine the signal properties.3. Calculate the convolution, frequency response and system output by using the functions: conv, freqz, freqs and filter. Experiment Contents实验项⽬⼀:MATLAB编程基础及典型实例①画出离散时间正弦信号并确定基波周期(注:pi 表⽰圆周率)1 x1[n]=sin(pi*4/4)*cos(pi*n/4)2 x2[n]=cos(pi*n/4)*cos(pi*n/4)3 x3[n]=sin(pi*n/4)*cos(pi*n/8)program for matlabn=0:31;x1=sin(pi*n/4).*cos(pi*n/4);x2=cos(pi*n/4).*cos(pi*n/4);x3=sin(pi*n/4).*cos(pi*n/8);subplot(3,1,1);stem(n,x1);title('x1');subplot(3,1,2);stem(n,x2);title('x2');subplot(3,1,3);stem(n,x3);title('x3');grid on;Conclusion: These signals is periodic, the first and second signal’s per iod are 4. The third signal’s period is 16.②离散时间系统性质:离散时间系统往往是⽤⼏个性质来表征,如线性、时不变性、稳定性、因果性及可逆性等。
微机原理实验报告实验三班级:2012级信息工程(7)班姓名:学号:序号:评阅分数:一、实验目的1、自学TPC-ZK通用32位微机接口实验系统的组成。
2、掌握实验系统中接口地址译码电路的工作原理及计算方法。
3、掌握简单I/O端口的读写操作。
4、掌握8255的工作原理及编程方法。
二、实验题目通过并行接口8255实现十字路口交通灯的模拟控制,如图29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮一定时间。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮一定时间。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
附加功能:1)PC3键作为右侧那组信号等的优先控制信号,如果PC3键为高,右侧信号灯立即转换成绿灯亮(PC0=1),左侧信号灯红灯亮(PC7=1),其它信号灯为0 2)PC4键作为左侧那组信号等的优先控制信号,如果PC4键为高,左侧信号灯立即转换成绿灯亮(PC5=1),右侧信号灯红灯亮(PC2=1),其它信号灯为0 3)PC3=0,PC4=0,依照正常信号灯控制方式。
三、程序流程图四、源程序清单DA TAS SEGMENTio8255a equ 288hio8255b equ 289hio8255c equ 28ahio8255d equ 28bhportcl db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据db 0ffh;结束标志DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXre_on:mov bx,0on1: mov dx,io8255d ;检查是否关闭紧急开关mov al,89h ;设c口为输入out dx,almov dx,io8255cin al,dxtest al,10h ;检测Pc4=1?jnz green_left ;亮左边灯test al,8h ;检测pc3=1?jnz green_right ;亮右边灯mov dx,io8255dmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255con:mov al,portcl[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,200 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,2000 ;有,长延时de1:mov di,9000 ;di赋初值9000de0:dec dijnz de0 ;di不为零loop de1push dxmov dl,0ffh ;检测是否有键盘输入?mov ah,06hint 21hpop dx ;弹出dx值jz on1 ;无按键,跳回on1 exit: MOV AH,4CH ;结束INT 21Hgreen_left: ;左边开关闭合程序mov dx,io8255dmov al,90h ;设为c口输出out dx,almov dx,io8255cmov al,24h ;左边绿灯右边红灯out dx,aljmp on1green_right: ;右边开关闭合程序mov dx,io8255dmov al,90h ;设为c口输出out dx,almov dx,io8255cmov al,81h ;左边红灯右边绿灯out dx,aljmp on1CODES ENDSEND START。
实验一熟悉C51开发仿真环境一. 实验目的1.熟悉用Keil C51开发程序。
2.熟悉用proteus仿真软件。
二. 实验内容1.结合课堂的例子,用keil软件实现一个灯闪灯灭的例子。
2.在Proteus下实现仿真和断点调试功能。
三. 实验内容1、开发过程Keil开发过程:(七个步骤)第0步、新建文件夹第1步:打开 Keil C51调试软件第2步:新建一个工程文件第3步:新建一个 C51 文件第4步:把保存好的此C51文件加入到工程中第5步:设置“.HEX”文件输出第6步:进行编译Proteus开发过程:搜索到所需的元器件以后,双击元器件名来将相应的元器件加入到的文档中,那么接着还用相同的方法来搜索并加入其他的元器件。
当已经将所需的元器件全部加入到文档中时,点击“OK”按钮来完成元器件的添加。
添加好元器件以后,下面所需要做的就是将元器件按照需要连接成电路。
首先在元器件浏览区中点击需要添加到文档中的元器件,这时就可以在浏览区看到所选择的元器件的形状与方向。
接着按相同的操作即可完成所有元器件的布置,接下来是连线。
布线时单击选择起点,然后在需要转弯的地方单击一下,按照所需走线的方向移动鼠标到线的终点单击。
首先点击,选择终端模式,然后在元器件浏览区中点击POWER(电源)来选中电源,通过区域⑥中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。
连接好电路图以后还需要做一些修改。
修改好各组件属性以后就要将程序(HEX文件)载入单片机了。
首先双击单片机图标,系统同样会弹出“Edit Component”对话框。
在这个对话框中点击“Program files”框右侧的,来打开选择程序代码窗口,选中相应的HEX文件后返回,这时,按钮左侧的框中就填入了相应的HEX文件,我们点击对话框的“OK”按钮,回到文档,程序文件就添加完毕了。
工具条从左到右依次是“Play”、“Step”、“Pause”、“Stop”按钮,即运行、步进、暂停、停止。
微机原理实验报告
实验一
班级:2016级信息工程班
姓名:
学号:
序号:
评阅分数:
实验一汇编程序上机环境的熟悉
一、实验目的
1、学会使用汇编程序集成开发环境(未来汇编)来编辑源文件(*.ASM)、调用
MASM宏汇编程序对源文件进行汇编,获得目标程序(*.OBJ)、调用LINK 连接程序将汇编后的目标文件(*.OBJ)连接成可执行的文件(*. EXE)。
2、学会在DOS命令提示符下调用EDIT编辑程序来编辑源文件(*.ASM)、调
用MASM宏汇编程序对源文件进行汇编,获得目标程序(*.OBJ)、调用LINK连接程序将汇编后的目标文件(*.OBJ)连接成可执行的文件(*. EXE)。
3、学会使用DEBUG调试程序把可执行文件装入内存并调试运行,熟悉
DEBUG命令。
二、实验题目
1、有两个无符号字节型数组,设数组元素个数相等,编程将数组中的对应元素相加,结果存入另一个内存区。
1) 不考虑进位。
①已知数据段的定义:
data segment
org 2000h
num1 db 12h,95h,0f1h,0c2h,82h,2h,10h,34h
count equ $-num1
org 3000h
num2 db 23h,0dfh,023h,3fh,3ch,0b3h,57h,3h
org 5000h
res db count dup(0)
data ends
②debug调试:修改num1和num2数组元素的值,运行看结果。
提示:-e2000
-d2000
2) 考虑进位。
①已知数据段的定义:
data segment
org 2000h
num1 db 12h,95h,0f1h,0c2h,82h,2h,10h,34h
count equ $-num1
org 3000h
num2 db 23h,0dfh,023h,3fh,3ch,0b3h,57h,3h
org 5000h
res dw count dup(0)
data ends
②debug调试:修改num1和num2数组元素的值,运行看结果。
提示:-e2000
-d2000
三、实验结果
(1) 不考虑进位。
①运行代码:
;sample
DATA SEGMENT
org 2000h
num1 db 12h,95h,0f1h,0c2h,82h,2h,10h,34h
count equ $-num1
org 3000h
num2 db 23h,0dfh,023h,3fh,3ch,0b3h,57h,3h
org 5000h
res db count dup(0)
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV BX,0
MOV CX,8
next: MOV AL,num1[BX]
ADD AL,num2[BX]
MOV res[BX],AL
INC BX
loop next
RET
START ENDP
CODE ENDS
END START
②程序运行流程截图:
反汇编:
从IP=0000开始执行,在IP=001F暂停,因为程序将相加的结果存在了
res中,所以输入:-d ds:5000查看存储单元
可以看到,在5000-5008对应的八个数为num1与num2不考虑进位的相加结果,说明程序编写正确。
再通过-e2000修改一个值,用-d2000查看是否修改成功:
可以发现,执行e2000,将原来num1的第一个数字12H修改为25H,再通过d2000查看,num1第一个数字已经修改成25H了
2) 考虑进位。
①运行代码:
;sample
DATA segment
org 2000h
num1 db 12h,95h,0f1h,0c2h,82h,2h,10h,34h
count equ $-num1
org 3000h
num2 db 23h,0dfh,023h,3fh,3ch,0b3h,57h,3h
org 5000h
res dw count dup(0)
DATA ends
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
MOV AX,0
PUSH AX
MOV AX,DATA MOV DS,AX
MOV AH,0
MOV AL,[NUM1] ADC AL,[NUM2] ADC AH,0
MOV [RES],AH MOV [RES+1],AL MOV AH,0
MOV AL,[NUM1+1] ADC AL,[NUM2+1] ADC AH,0
MOV [RES+2],AH MOV [RES+3],AL MOV AH,0
MOV AL,[NUM1+2] ADC AL,[NUM2+2] ADC AH,0
MOV [RES+4],AH MOV [RES+5],AL MOV AH,0
MOV AL,[NUM1+3] ADC AL,[NUM2+3] ADC AH,0
MOV [RES+6],AH MOV [RES+7],AL MOV AH,0
MOV AL,[NUM1+4] ADC AL,[NUM2+4] ADC AH,0
MOV [RES+8],AH MOV [RES+9],AL MOV AH,0
MOV AL,[NUM1+5] ADC AL,[NUM2+5] ADC AH,0
MOV [RES+10],AH MOV [RES+11],AL MOV AH,0
MOV AL,[NUM1+6] ADC AL,[NUM2+6]
MOV [RES+12],AH
MOV [RES+13],AL
MOV AH,0
MOV AL,[NUM1+7]
ADC AL,[NUM2+7]
ADC AH,0
MOV [RES+14],AH
MOV [RES+15],AL
RET
START ENDP
CODE ENDS
END START
②程序运行流程截图:
先反编译找到RETF的IP
从IP=0000开始执行,在IP=00A2暂停,因为程序将相加的结果存在了
res中,所以输入:-d ds:5000查看存储单元
可以看到,在每一个数之前都能看到进位00或01,对比num1和num2的数据,发现结果正确,说明代码无误。
再执行-e2002 -e3005看能否修改num1和num2数组中的值
利用-d2002和-d3000查看存储空间可以发现,修改成功四、实验感悟。