欢迎来到天天文库
浏览记录
ID:27018008
大小:54.50 KB
页数:7页
时间:2018-11-30
《汇编语言实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、完美WORD格式汇编语言程序设计实验一DEBUG程序使用技巧学号:姓名:1.寄存器和内存开始Debug程序。输入“Q8”退出程序。再次启动Debug。输入“r8”来显示CPU的当前状态和寄存器中的当前内容。输入“rAX8”和“1234”,_______寄存器中的内容变为1234。输入“rDS8”和“2000”,_______寄存器中的内容变为2000。输入“dDS:10008”来显示数据段中80H字节数据,把数据抄在这里:输入“fDS:10001100778”再显示一次这80H字节。判断这条指令的作用是什么?再输入“d2000:10008”来显示数据段中80H字节数据。观察与前面
2、的数据有无不同。输入“d1900:01008”和“d1ff0:01008”来显示两个存储段中的内容。比较其中2000:0000段中的数据。相同段落中的数据相同么?根据你的观察,得出结论,是否程序员可以用不同的段起始地址和偏移量组合,把不容内容存入相同的内存段中。整理分享完美WORD格式2.输入机器码,使用单步和断点退出Debug,再重新启动Debug。输入“r8”观察CPU的状态,下一条指令是什么?使用两种方式输入一段程序,第一种方式:直接输入机器码。输入“u8”来显示程序段中的指令序列。然后输入“dCS:1008”来显示代码段中的数据。观察显示内容。“uCS:1001068”做
3、反汇编,就是显示出汇编语句。将这几句汇编语句记录下来:使用输入“r8”观察CPU的状态,使用“t8”来跟踪程序,直至最后一条指令执行完毕。注意,跟踪程序前,要让IP寄存器中的值是100H。一直监视AX和IP寄存器的内容变化,尤其是标志位的变化。整理分享完美WORD格式第二种方式,是输入汇编语句。重启Debug程序。先输入“aCS:1008”,然后输入:MOVAX,FF00ADDAX,01F0MOVBX,AXNEGBXADDAX,BX输入“uCS:10010A8”就可以得到这几条语句的机器码。把机器码记录下来:使用命令“rip8”再输入“1008”,可以将寄存器IP中的内容置为“1
4、00H”。再输入“r8”观察CPU的状态,然后反复输入“t8”跟踪程序,直到程序结束。解释为什么标志位内容会有改变?另外,说明这段程序完成什么任务?重新把寄存器IP的内容变为100H,不使用跟踪命令“t”,改用“g10c”来完成程序。程序中还可以加断点,做法是在程序中加入“int3”这条指令。如果这条指令在程序的末尾,我们可以通过输入“g8”来完成运行程序。这样就不需像上面需要告诉Debug程序最后机器码字节的地址偏移量了。“int3”是Debug中很有效的返回控制指令。把这条指令放在程序中必要的位置上,在这条指令后面的代码在不允许时就不会运行。整理分享完美WORD格式3.ASC
5、II字符码,从键盘输入,从显示器输出(i)标准ASCII(AmericanStandardCodeforInformationInterchange)码使用7-bit二进制数来代表字符。一般文本信息经常用ASCII编码。使用命令“aCS:1008”,输入下面的代码:MOVBX,0MOV[BX],BLINCBXCMPBH,1JNE103INT3使用“dDS:01008”命令,显示程序运行前相应内存段中的数据。运行上面的程序来填充DS:0000-00FF这段内存中的内容。再次输入“dDS:01008”命令来显示填充的内容。在窗口的右边,可以看到相应的ASCII码字符。如果填充的内容不
6、是字符,显示就用点表示。用类似方法,如何将字符串“Howareyou?”写入计算机内存呢?(ii)计算机的BIOS(BasicInput/OutputSystem)程序有很多子程序,用来通过标准外设处理输入和输出,比如,键盘和显示器。BIOS的程序都可以通过称为系统中断的特殊指令被调用。例如:INT16H返回值是把下一个键盘输入值送入寄存器ALINT10H当BH=0时,将光标移到由寄存器DH和DL内容所指定的行和列的位置上INT21H当AH=2时,将DL中的内容作为ASCII码的字符显示出来INT21H当AH=9时,将位于DS:DX的内容显示为字符串(一个ASCII码序列由$符作
7、结束符)。(ii)(a)将下列代码输入程序段CS:0100中:MOVAH,0INT16HINT3JMP100整理分享完美WORD格式使用“uCS:1001108”命令,将程序转换为机器码。其中“JMP100”的机器码是“EBF9”。如果使用的是相对寻址方式,我们可以猜测出机器码中“F9”的含义么?相对寻址方式比绝对地址方便的地方是什么?重置IP的内容为100H,再输入“g8”来执行程序。程序中断时,输入字母“B”,检查寄存器AL中的内容为:_________重复上面的动作,但输入
此文档下载收益归作者所有