




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理实 验 教 学 指 导 书撰写人:刘院英审核人:孙立辉河北经贸大学信息技术学院2009年11月30日文档可自由编辑打印前 言一、 实验总体目标通过一系列使用80x86汇编语言的实验练习,把汇编语言程序设计的概念和理论知识融入到实践当中。一方面加深对汇编语言程序设计的认识和理解,另外一方面为后续的微机接口课程的学习和实验奠定坚实的理论基础,培养学生分析问题、解决问题的能力。使学生具有运用现代微机技术进行软、硬件系统开发的能力。二、 适用专业年级本实验指导书适用于计算机专业学生以及电子专业学生三、 先修课程计算机组成原理、C语言程序设计四、 实验环境微型计算机、MASM、LINK、DEBU
2、G五、 实验总体要求1、实验是学习微机原理这门课程的重要环节,实验课请勿迟到,缺席。2、爱护设备,保持清洁,不随意更换设备。3、认真完成实验任务,实验结果经教师检查,教师对实验内容提问,对完成者做记录。4、做硬件实验时,注意断电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行,严禁带电操作,并注意防止导线堵塞插孔。5、 发生事故,应立即切断电源,并马上向教师报告,检查原因,吸取教训。实验完毕,请整理实验设备,再离开实验室。6、 每次实验后,应递交一份实验报告,报告中应包括下列内容:实验名称、实验人姓名、学号、班级、所用的设备号;实验目的、任务;各任务程序流程图、程序清单(应加适量注释
3、);记录和分析实验结果,回答思考题;根据实验目的认真做总结六、本课程实验的重点、难点及教学方法建议本课程实验的重点是要求学生掌握用指令实现顺序、分支、循环、子程序等程序结构,具备用指令进行汇编语言程序设计的能力。难点是DEBUG调试工具的使用。为了让学生能够正确上机实践,一方面要加大例题的数量。讲授例题的一般过程是分析问题,确定算法,编写流程,用汇编指令编写源程序。这样学生就能从一个个例题中逐渐掌握汇编语言的格式,汇编指令,程序流程,汇编程序设计。另一方面,在教学过程,对于某些难于理解的地方,尽量多利用现代化的多媒体教学手段,以便帮助学生更好地掌握所学知识,例如制作CAI课件,把那些难于理解的
4、部分以直观、动态动画的形式进行演绎,使得学生易于接受和理解。最后,由于计算机技术的飞速发展,硬件集成度的增加,会出现很多新的汇编指令,所以在教学过程中,介绍一些带有新技术标志的指令,使学生了解最新的发展情况,提高学生的学习积极性。实验一 汇编程序的上机调试操作一、 实验目的1. 熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程;2. 掌握DEBUG 的基本命令及其功能二、 实验要求1、实验前,预习汇编语言上机过程;2、预习DEBUG的基本命令。三、 实验仪器设备和材料清单1、PC机一台2、实验指导书一份四、 实验内容(一)上机实验过程1、编辑源程序,建立一个以后缀为 ASM的文件(
5、程序的扩展名必须是.ASM)。如:C:>EDIT SHIYAN1.ASM2、汇编源程序,检查程序有否错误。有错时系统会提示源程序中哪一行有错误,然后回到编辑状态,修改程序中的错误行。无错时继续第3步。C:>MASM SHIYAN1.ASMMicrosoft (R) Macro Assembler Version 5.00 Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Obect SHIYAN1.OBJ Source listing NUL.LST: Cross-reference NUL.CRF:
6、 50792 + 450136 Bytes symbol space free 0 Warning Errors 0 Severe Errors汇编程序的输入文件是.ASM文件,其输出文件有三个。表示于回答的中间三行。第一行是OBJ文件,这是我们汇编的目的,所以这个文件是我们需要的,对于SHIYAN1.OBJ 后的:可以直接回车,这样就建立了SHIYAN1.OBJ文件,当然也可以另起其它名字。第二个是LST文件,称为列表文件。这个文件同时列出源程序和机器语言程序清单,并给出符号表。这个文件是可有可无的,需要时可以回答文件名,不需要可以直接回车。第三个是CRF文件,用来产生交叉引用表REF,对于
7、一般程序不需要建立此文件,可以直接回车。3、连接目标程序,产生可执行程序。C:>LINK SHIYAN1.OBJMicrosoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp 1983-1987. All rights reserved.Run File SHIYAN1.EXE:List File NUL.MAP: Libraries .LIB: Warning:NO STACK segmentThere is 1 error detected.连接程序的输入文件有两个,一个是OBJ文件,一个是LIB文件。LIB
8、是一个库文件,如无特殊需要,直接回车即可。LINK程序有两个输出文件,一个是EXE文件,这个是我们必须的,所以 SHIYAN1.EXE:后面直接回车就生成了可执行文件SHIYAN1.EXE,如果需要修改文件名也可以在冒号后面直接键入;另外一个输出文件是MAP文件,它是连接程序的列表文件,给出了每个段在存储器中的分配情况,可以直接回车。连接程序给出的无堆栈段的警告错误并不影响程序的执行。4、程序的执行在建立了EXE文件后,就可以直接在DOS下执行程序了,如下所示:C:>SHIYAN1.EXEC:>文件扩展名.EXE可以省略。程序运行后就可以返回DOS。如果程序有显示功能,那么我们可以
9、通过终端得到运行结果。如果程序没有显示功能,那么我们只能通过DEBUG程序得到运行结果。方法如下:C:>DEBUG SHIYAN1.EXE用DEBUG程序调试可执行程序,记录数据段的内容。(二)DEBUG命令的使用DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。1、DEBUG程序的启动在DOS提示符下,可键入命令:C:>DEBUGpath文件名 参数1参数2其中文件名是被调试文件的名称,它须是执行文件(EXE或COM),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入
10、所需的DEBUG命令。在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。DOS的提示符不一定是“ C:> ”, 可以是其它的形式,请使用者根据具体情况自行确定。2、DEBUG的主要命令(1)汇编命令A格式:Aaddress说明:该命令从指定地址开始输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。address 是要进行汇编程序(编码)输入的首地址,地址
11、包括段地址和偏移地址,如果省略,则从当前的默认地址开始。如:-a 16D8:020016D8:0200 MOV AH,216D8:0202 MOV AL,116D8:0204 MOV BX,020016D8:0207 MOV CX,000116D8:020A MOV DX,000116D8:020D INT 1316D8:020F INT 316D8:0210-或:-a 16D8:0100 MOV AH,216D8:0102 MOV AL,116D8:0104 MO BX,020016D8:0107 MVO CX,000116D8:010A MOV DX,000116D8:010D INT 1
12、316D8:010F INT 316D8:0110 -系统把操作者在DEBUG调试系统中输入的所有数字均按十六进制数处理(下同)。(2)反汇编命令U格式:Uaddress 或 Urange说明:该命令从指定地址开始,反汇编32个字节,即把机器语言反汇编成汇编语言。显示的格式为:内存地址 指令代码 反汇编的程序代码address 是要反汇编的指令存储单元的首地址,range是要反汇编指令的存储单元的首地址和末地址,均可省略。 如:-u100 11516A7:0100 1E PUSHDS16A7:0101 33C0 XOR AX,AX16A7:0103 50 PUSHAX16A7:0104 B01
13、2 MOVAL,1216A7:0106 B90400 MOVCX,000416A7:0109 32DB XORBL,BL16A7:010B D0E0 SHL AL,116A7:010D D0D3 RCLBL,116A7:010F E2FA LOOP010B16A7:0111 B104 MOVCL,0416A7:0113 D2E8 SHRAL,CL16A7:0115 CB RETF若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。这种做法极有可能将内存中的数据垃圾或其它方面的数据也当成指令代码来进行反汇编。如:-u16A7:0100 1E PUSHDS16A7:0101
14、33C0 XOR AX,AX16A7:0103 50 PUSHAX16A7:0104 B012 MOVAL,1216A7:0106 B90400 MOVCX,000416A7:0109 32DB XORBL,BL16A7:010B D0E0 SHL AL,116A7:010D D0D3 RCLBL,116A7:010F E2FA LOOP010B16A7:0111 B104 MOVCL,0416A7:0113 D2E8 SHRAL,CL 16A7:0115 CB RETF16A7:0116 0101 ADD BX+DI,AX16A7:0118 0201 ADD AL,BX+DI16A7:011
15、A 0000 ADD BX+SI,AL16A7:011C 00FF ADD BH,BH16A7:011E FF01 INCWORD PTR BX+DI-(3)显示存储单元命令D格式:Daddress 或 Drange说明:该命令从指定地址开始,以十六进制显示内存单元内容。显示时屏幕分成三部分,最左边是段地址和起始的偏移地址,中间是每个存储单元的内容,右边是每个存储单元内容对应的ASCII字符。每行显示十六个存储单元内容。address 是要显示的存储单元的首地址,range是要显示的存储单元的首地址和末地址,均可省略。如:-d16D8:012016D8:0120 00 DB D2 D3 E0
16、03 F0 8E-DA 8B C7 16 C2 B6 01 16 .16D8:0130 C0 16 F8 8E C2 AC 8A D0-00 00 4E AD 8B C8 46 8A .N.F.16D8:0140 C2 24 FE 3C B0 75 05 AC-F3 AA A0 0A EB 06 3C B2 .$.<.u.<.16D8:0150 75 6D 6D 13 A8 01 50 14-74 B1 BE 32 01 8D 8B 1E umm.P.t.2.16D8:0160 8E FC 12 A8 33 D2 29 E3-13 8B C2 03 C3 69 02 00 .3.)
17、.i.16D8:0170 0B F8 83 FF FF 74 11 26-01 1D E2 F3 81 00 94 FA .t.&.16D8:0180 00 F0 74 16 81 C2 00 10-EB DC 5B 40 42 26 1E 83 .t.B&.16D8:0190 EF 10 19 90 EB 45 A1 E2-97 8B 3E FB 8B 36 0A 80 .E.>.6.16D8:01A0 9A CF F0 01 06 02 00 2D-B1 0A 00 BB BB F5 FA 8E .-.或:-d16D8:0100 0F 00 B9 8A FF F3 A
18、E 47-61 03 1F 8B C3 48 12 B1 .Ga.H.16D8:0110 04 8B C6 F7 0A 0A D0 D3-48 DA 2B D0 34 00 C7 16 .H.+.4.16D8:0120 00 DB D2 D3 E0 03 F0 8E-DA 8B C7 16 C2 B6 01 16 .16D8:0130 C0 16 F8 8E C2 AC 8A D0-00 00 4E AD 8B C8 46 8A .N.F.16D8:0140 C2 24 FE 3C B0 75 05 AC-F3 AA A0 0A EB 06 3C B2 .$.<.u.<.16D8:
19、0150 75 6D 6D 13 A8 01 50 14-74 B1 BE 32 01 8D 8B 1E umm.P.t.2.16D8:0160 8E FC 12 A8 33 D2 29 E3-13 8B C2 03 C3 69 02 00 .3.).i.16D8:0170 0B F8 83 FF FF 74 11 26-01 1D E2 F3 81 00 94 FA .t.&.(4)输入命令E输入命令E有两种格式。1)用给定的内容代替指定范围的单元内容:-E地址 内容表 例如:-E 2000:0100 F3 XYZ 8D其中F3,X Y Z和8D各占一个字节,用这五个字节代替原内存单
20、元2000:0100到0104的内容,XYZ将分别按它们的ASCII码值代入。2)逐个单元相继地修改:-E地址例如:-E 18E4:100:18E4:0100 89.78此命令是将原100号单元的内容89改为78。78是程序员键入的。对其中需要修改的存储单元的内容进行修改,对其中不需修改的部分轻击空格键跳过,当在屏幕上出现要修改的内容时就在所显示的内容后面直接输入新的内容。 但不能击回车键,在此操作中击回车键表示命令结束。 (5)寄存器内容检查和修改命令R1)显示CPU内部所有寄存器内容和标志位状态,格式为:-R-RAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE
21、 BP=0000 SI=0000 DI=0000 DS=247A ES=247A SS=247A CS=247A IP=0100 NV UP EI PL NZ NA PO NC 247A:0100 0F DB0FR命令显示中标志位状态的含义如下表所示:标 志 名置 位复 位溢出Overflow(是/否)OVNV方向Direction(减量/增量)DNUP中断Interrupt(允许/屏蔽)EIDI符号Sign(负/正)NGPL零Zero(是/否)ZRNZ辅助进位Auxiliary Carry(是/否)ACNA奇偶Parity(偶/奇)PEPO进位Carry(是/否)CYNC2)显示和修改某个指
22、定寄存器内容,格式为:-R 寄存器名例如打入:-R AX系统将响应如下:AX FIF4:表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:-R BXBX 0369:059F则BX内容由0369改为059F3)显示和修改标志位状态,命令格式为:-RF系统将给出响应,如OV DN EI NG ZR AC PE CY-这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如:OV DN EI NG ZR AC PE CY-PO NZ DI NV(6)跟踪命令T跟踪命令T有两种格式。格式一 T=address命令从指定地址起执行一条指令后
23、停下来,显示寄存器内容和状态值。 格式二 T=addressvalue该命令从指定地址起执行n条命令后停下来,n由value确定。说明: 如没有指定首地址,系统将根据当前的CS:IP值来决定要执行哪条指令,如没有指定要跟踪的的指令条数,则系统默认一次跟踪一条指令(下同)。当每条被跟踪指令执行后,系统将所有寄存器的内容均在屏幕上显示出来,并把下一条要执行的指令也显示出来。如:-tAX=0000 BX=0000 CX=0016 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=2AE1 ES=2AE1 SS=2AE1 CS=2AE1 IP=0101 NV UP
24、EI PL NZ NA PO NC 2AE1:0101 33C0 XORAX,AX -tAX=0000 BX=0000 CX=0016 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=2AE1 ES=2AE1 SS=2AE1 CS=2AE1 IP=0103 NV UP EI PL ZR NA PE NC 2AE1:0103 50 PUSHAX 一次跟踪一条指令,也可以一次跟踪若干条指令,如一次跟踪三条指令:-t=100 3AX=0000 BX=0000 CX=0016 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=4
25、299 ES=4299 SS=4299 CS=4299 IP=0101 NV UP EI PL NZ NA PO NC 4299:0101 33C0 XORAX,AX AX=0000 BX=0000 CX=0016 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=4299 ES=4299 SS=4299 CS=4299 IP=0103 NV UP EI PL ZR NA PE NC 4299:0103 50 PUSHAX AX=0000 BX=0000 CX=0016 DX=0000 SP=FFFA BP=0000 SI=0000 DI=0000 DS=4
26、299 ES=4299 SS=4299 CS=4299 IP=0104 NV UP EI PL ZR NA PE NC 4299:0104 B012 MOVAL,12 -请注意各寄存器的变化,尤其是寄存器IP的变化。(7)单条执行命令P格式:P=addressvalue 说明:该命令与前面提到的跟踪命令P极其相似,也是用于跟踪和调试程序中的各条指令的命令,同样可以用于单条命令的跟踪和多条命令的跟踪。 不同的只是该命令对于任何指令(包括过程调用指令)均当成一条指令来处理, 因此对于调试一些诸如子程序调用,BIOS、DOS功能调用等指令的程序的时候特别好用。(8)运行命令G(Go)格式:G=add
27、ress1address2 address3.说明:address1为要开始调试的程序的首地址,address2、address3为要调试的程序的各断点,如省略,系统将执行到程序结束。如系统正常结束, 则在屏幕上显示“Program terminated normally”,同时系统复位;若系统非正常结束,则可能出现各种不可预料的后果,如系统进入死循环、重新启动等。 若带有断点参数(注意:每个断点都应该是每条指令的首地址),则每当执行到该断点位置时就停下来, 同时显示程序运行到断点位置时各寄存器的状态以及下一条要执行的指令。如:-gProgram terminated normally-(9)
28、输入命令I格式:I portaddress说明:从指定的端口读入并显示一个字节的内容(以十六进制数表示)。-I 3f804-I 2f841-(10)输出命令O格式:O portaddress byte说明:将一个字节的内容(以十六进制数表示)从指定的端口输出,但屏幕对操作的结果没有回显。如从端口3f8H、2f8H送出40H、50H:-o3f8 40-o2f8 50-(11)命名命令N命名命令N,格式为:-N 文件名此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。(12)装入命令L1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为
29、:-L 地址 驱动器 扇区号 扇区数2)装入指定文件,格式为:-L 地址此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。在用L命令前,BX和CX中应包含所读文件的字节数。(13)写命令W1)把数据写入磁盘的指定扇区:-W 地址 驱动器 扇区号 扇区数2)把数据写入指定文件中:-W 地址此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。在用W命令前,BX和CX中应包含要写入文件的字节数。(14)退出命令Q格式:Q说明:该命令的作用是退出DEBUG状态,返回DOS的提示符下。如:-q五、实验步骤1、把40个字母a的字符串从源缓冲区传送到目的缓冲区。(1) 编辑源程
30、序: C:EDIT SHILI.ASMDATA1 SEGMENT SOURCE DB 40 DUP (a)DATA1 ENDSDATA2 SEGMENT DEST DB 40 DUP (?)DATA2 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA1,ES:DATA2MAIN PROC FARPUSH DSSUB AX,AXPUSH AXMOV AX,DATA1MOV DS,AXMOV AX,DATA2MOV ES,AXLEA SI,SOURCELEA DI,DESTCLDMOV CX,40REPZMOVSBRETMAIN ENDPCODE ENDSEND MA
31、IN2、编译: C:MASM SHILI.ASM3、链接: C:LINK SHILI.OBJ4、调试: C:DEBUG SHILI.EXE1)、先用命令U反汇编整个程序,查看每条指令的物理地址,其显示内容的含义为:内存地址 指令代码 反汇编的程序代码-u0B75:0000 1E PUSHDS 0B75:0001 2BC0 SUBAX,AX 0B75:0003 50 PUSHAX 0B75:0004 B86F0B MOVAX,0B6F ;数据段的段地址ds= 0b6f 0B75:0007 8ED8 MOVDS,AX 0B75:0009 B8720B MOVAX,0B72 ;附加段的段地址es=
32、0b72 0B75:000C 8EC0 MOVES,AX 0B75:000E 8D360000 LEASI,0000 0B75:0012 8D3E0000 LEADI,0000 0B75:0016 FC CLD 0B75:0017 B92800 MOVCX,0028 0B75:001A F3 REPZ 0B75:001B A4 MOVSB 0B75:001C CB RETF 2)、从上一步结果中找到数据段的首地址0B6F,附加段的首地址0B72,查看里面存储的数据,数据段从首地址0B6F开始40个字节中存储了40个字符a:-d 0b6f:00000B6F:0000 61 61 61 61 61
33、 61 61 61-61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa0B6F:0010 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa0B6F:0020 61 61 61 61 61 61 61 61-00 00 00 00 00 00 00 00 aaaaaaaa.0B6F:0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B6F:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 0
34、0 00 00 .0B6F:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B6F:0060 1E 2B C0 50 B8 6F 0B 8E-D8 B8 72 0B 8E C0 8D 36 .+.P.o.r.60B6F:0070 00 00 8D 3E 00 00 FC B9-28 00 F3 A4 B4 02 CD 21 .>.(.!附加段从首地址0B72开始40个字节中存储了40个空字符-d 0b72:0000 0B72:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 0
35、0 .0B72:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B72:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B72:0030 1E 2B C0 50 B8 6F 0B 8E-D8 B8 72 0B 8E C0 8D 36 .+.P.o.r.60B72:0040 00 00 8D 3E 00 00 FC B9-28 00 F3 A4 B4 02 CD 21 .>.(.!0B72:0050 CB 00 00 00 00 00 00 00-00 00 00 0
36、0 00 00 00 00 .0B72:0060 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa0B72:0070 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa3)、从反汇编地址中找到把数据段的首地址0B6F传给寄存器AX的指令地址0B75:0007,用G命令执行到地址0007,然后用T命令单步执行,看寄存器AX,DS,ES的内容的变化-G 0007AX=0B6F BX=0000 CX=0111 DX=0000 SP=FFFC B
37、P=0000 SI=0000 DI=0000 DS=0B5F ES=0B5F SS=0B6F CS=0B75 IP=0007 NV UP EI PL ZR NA PE NC 0B75:0007 8ED8 MOVDS,AX -TAX=0B6F BX=0000 CX=0111 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=0B6F ES=0B5F SS=0B6F CS=0B75 IP=0009 NV UP EI PL ZR NA PE NC 0B75:0009 B8720B MOVAX,0B72 -TAX=0B72 BX=0000 CX=0111 DX=00
38、00 SP=FFFC BP=0000 SI=0000 DI=0000 DS=0B6F ES=0B5F SS=0B6F CS=0B75 IP=000C NV UP EI PL ZR NA PE NC 0B75:000C 8EC0 MOVES,AX -TAX=0B72 BX=0000 CX=0111 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=000E NV UP EI PL ZR NA PE NC 0B75:000E 8D360000 LEASI,0000 -TAX=0B72 BX=0000
39、 CX=0111 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=0012 NV UP EI PL ZR NA PE NC 0B75:0012 8D3E0000 LEADI,0000 -TAX=0B72 BX=0000 CX=0111 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=0016 NV UP EI PL ZR NA PE NC 0B75:0016 FC CLD 4)、让程序执行到传
40、送准备工作完成后的地址0B75:0016 ,查看源偏移地址SI 和目标偏移地址DI的值,以及移动次数存放的寄存器CX,然后用T命令单步执行,看寄存器源地址(DS:DI)和目标地址(ES:SI)的内容的变化 -g0016AX=0B72 BX=0000 CX=0111 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=0016 NV UP EI PL ZR NA PE NC 0B75:0016 FC CLD -tAX=0B72 BX=0000 CX=0111 DX=0000 SP=FFFC BP=0
41、000 SI=0000 DI=0000 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=0017 NV UP EI PL ZR NA PE NC 0B75:0017 B92800 MOV CX,0028 -tAX=0B72 BX=0000 CX=0028 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=001A NV UP EI PL ZR NA PE NC 0B75:001A F3 REPZ 0B75:001B A4 MOVSB -tAX=0B72 BX=0000 CX
42、=0027 DX=0000 SP=FFFC BP=0000 SI=0001 DI=0001 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=001A NV UP EI PL ZR NA PE NC 0B75:001A F3 REPZ 0B75:001B A4 MOVSB -tAX=0B72 BX=0000 CX=0026 DX=0000 SP=FFFC BP=0000 SI=0002 DI=0002 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=001A NV UP EI PL ZR NA PE NC 0B75:001A F3 REPZ 0B75:
43、001B A4 MOVSB -tAX=0B72 BX=0000 CX=0025 DX=0000 SP=FFFC BP=0000 SI=0003 DI=0003 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=001A NV UP EI PL ZR NA PE NC 0B75:001A F3 REPZ 0B75:001B A4 MOVSB -d ds:0000 ;进行了三次传送操作后,查看一下源缓冲区和目的缓冲区的内容0B6F:0000 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa0B6F:
44、0010 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa0B6F:0020 61 61 61 61 61 61 61 61-00 00 00 00 00 00 00 00 aaaaaaaa.0B6F:0030 61 61 61 00 00 00 00 00-00 00 00 00 00 00 00 00 aaa.0B6F:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B6F:0050 00 00 00 00 00 00 00 00-00 00 00
45、00 00 00 00 00 .0B6F:0060 1E 2B C0 50 B8 6F 0B 8E-D8 B8 72 0B 8E C0 8D 36 .+.P.o.r.60B6F:0070 00 00 8D 3E 00 00 FC B9-28 00 F3 A4 B4 02 CD 21 .>.(.!-d es:00000B72:0000 61 61 61 00 00 00 00 00-00 00 00 00 00 00 00 00 aaa.0B72:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B72:0020 00 00 00
46、 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B72:0030 1E 2B C0 50 B8 6F 0B 8E-D8 B8 72 0B 8E C0 8D 36 .+.P.o.r.60B72:0040 00 00 8D 3E 00 00 FC B9-28 00 F3 A4 B4 02 CD 21 .>.(.!0B72:0050 CB 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B72:0060 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa0B72:0070 61 61 61 61 61 61 61 61-61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa-r ;用R命令查看一下各个寄存器的内容:AX=0B72 BX=0000 CX=0025 DX=0000 SP=FFFC BP=0000 SI=0003 DI=0003 DS=0B6F ES=0B72 SS=0B6F CS=0B75 IP=001A NV UP EI PL ZR NA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生暑期“三下乡”社会实践总结模版
- 组态软件技术整体教学设计-张松枝
- 糖原累积病Ⅵ型的临床护理
- 小米3小米电视发布会
- 广西南宁市第四十九中学2025届数学七下期末综合测试模拟试题含解析
- 统编版语文一年级上册1秋天 课件
- 医学生模拟谈话技能培训大纲
- 2025年秋学期初二家长会班主任发言稿模版
- 2025年民办学校审工作总结模版
- 狂犬病医学发展史
- 动物防疫面试试题及答案
- 2025年青岛科协面试试题及答案
- 政策传播与接受-深度研究
- 2024年12月大学英语四级考试真题及答案第1套
- 学术期刊数字化转型-深度研究
- 台安N2变频器说明书
- 《环境设计工程计量与计价》课件-1.什么是装饰工程预算
- 浙江宁波镇海区2025届中考生物对点突破模拟试卷含解析
- 设备维保管理制度
- 光伏发电工程施工方案
- 2025届八省联考语文试卷评析及备考策略 课件
评论
0/150
提交评论