收藏 分销(赏)

川大秋季计算机综合实践报告.doc

上传人:快乐****生活 文档编号:3680519 上传时间:2024-07-13 格式:DOC 页数:14 大小:53.50KB
下载 相关 举报
川大秋季计算机综合实践报告.doc_第1页
第1页 / 共14页
川大秋季计算机综合实践报告.doc_第2页
第2页 / 共14页
川大秋季计算机综合实践报告.doc_第3页
第3页 / 共14页
川大秋季计算机综合实践报告.doc_第4页
第4页 / 共14页
川大秋季计算机综合实践报告.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、实验一 DEBUG调试工具熟悉、使用一、 实验题目 熟悉、使用DEBUG调试工具 二、 实验日期:2011/04/15三、 实验目的1. 了解并逐步熟悉汇编语言的编辑方法及特点.2. 复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。3. 掌握汇编语言的编辑、汇编及连接的过程。4. 了解并逐步掌握运用DEBUG进行调试汇编语言程序。5. 借助DEBUG调试工具来发现汇编语言程序的错误所在并加以改正。四、 实验内容:1、 进入DEBUG方法1:在Windows开始菜单中单击运行命令,直接在运行对话框中输入DEBUG 方法2:在运行对话框中输入CMD启动DOS命令窗口后输入DEB

2、UG 方法3:在程序、附件、命令提示符,启动DOS命令窗口后输入DEBUG2、DEBUG命令格式DEBUG的每个命令都是一个字母,后跟一个或多个参数。下面对DEBUG命令作几点说明。字母不分大小写。只使用16进制数,且不能带后缀H。以空格或逗号作为命令各项之间的分隔符。分隔符只在两个数值之间是必须的。可以用Ctrl-C或Ctrl-Break终止命令的执行。若输入的命令有语法错误,则提示“Error”,并用“”指出错误位置。 3、 常用的Debug功能用Debug的R命令查看、改变CPU寄存器的内容; 用Debug的D命令查看内存中的内容; 用Debug的E命令改写内存中的内容; 用Debug的

3、U命令将内存中的机器指令翻译成汇编指令; 用Debug的T命令执行一条机器指令 用Debug的A命令以汇编指令的格式在内存中写了一条机器指令 4、 用Debug的R命令查看、改变CPU寄存器的内容; R命令用来显示和修改寄存器的值,包括以下两种格式。(1) R 显示所有寄存器和8个标志位的值,并反汇编CS:IP所指的指令。(2) R 显示指定寄存器的值,并等待用户键入新的值,按回车键结束R命令。5、 用Debug的D命令查看内存中的内容; D命令可以查看内存中的内容,D命令的格式较多,只介绍本次实验中用到的格式,8086/8088CPU能够访问1M内容,D命令可以显示0000:0000H-FF

4、FF:FFFFH中的任何一个单元的内存如果想知道内存10000H处的内容,可以用d 段地址:偏移地址的格式来查看,如输入 -d 1000:0使用 d 1000:9查看1000:9处的内容。 使用 d 1000:0 9查看1000:0-1000:9的内容 一进入Debug,可直接使用D命令直接查看,将列出Debug预设的地址处的内容6、 用Debug的E命令改写内存中的内容; 使用e 起始地址 数据 数据 数据.的格式来进行 如将内存1000:0-1000:9单元中的内容分别写为0、1、2、3、4、5、6、7、8、9 -e 1000:0 0 1 2 3 4 5 6 7 8 9 也可以采用提问方式

5、一个一个修改内存中的内容,如 输入e 1000:0,按Enter键 输入修改的数据,再按空格键输入下一个要修改的数据,最后Enter键结束操作。 输入字符串的格式:如-e 1000:10 1 a 2 c+ 3 IBM将输入1 a 2 c+ 3 IBM到相应单元 向内容中写入机器码,如 b80100 (代表 mov ax, 0001), b90200(代表 mov cx, 002), 01c8(代表 add ax, cx),那么输入-e 1000:0 b8 01 00 b9 02 00 01 c8就将该程序输入内容1000:0处,然后使用u命令-u 1000:0可以将内存单元中的内容翻译成汇编指

6、令。如果要执行该程序,首先用r命令将cs修改成1000,ip修改成0,再执行t命令,单步执行程序。执行T命令时,CPU执行CS:IP执行的指令并将IP加1.7、 用Debug的A命令以汇编指令的形式在内存中写了机器指令 示例:用A命令,输入下列程序并运行 -a 1000:0 mov ax, 1 mov bx, 2 mov cx, 3 add ax, bx add ax, cx add ax, ax 直接按Enter键结果输入。用r命令将cs修改成1000,ip修改成0,再执行t命令,单步执行程序。执行T命令时,CPU执行CS:IP执行的指令并将IP加1. 实验二 设计汇编语言程序一 实验题目

7、设计汇编语言程序二 实验日期:2010/04/10三 实验目的字符串统计程序设计双字乘法程序设计四 实验内容1 字符串统计。 在数据段中建立一个缓冲区BUFFER,变量VER,编程使得程序具有如下功能:从键盘输入一个子字符串存入VER,从键盘输入包含一个或几个子字符串的字符串存入BUFFER。统计BUFFER中的字符串含有多少个子字符串以及每个子字符串的位置。2 双字乘法程序。设计一个程序实现32位带符号双精度数乘法运算。由于只有8位和16位的乘法指令。因此32位乘法运算是不能直接用指令实现的。但可以用16位乘法指令,通过 4次想乘然后把部分积想加。对于带符号数,可以先根据绝对值求得积。然后判

8、断积的符号,若积为负数,应将其用补码表示。五、 程序设计1、字符串统计程序设计#includeusing namespace std;int main() char a;int b=0,c=0,d=0,e=0,f=0; cout请输入一行任意字符:; a=cin.get(); while(a!=n) if(a=128) b+; else if(a=a&a=A&a=0&a=9) e+; else f+; a=cin.get(); cout总共有b/2+c+d+e+f个字符:endl; cout中文t英文t空格t数字t其他endl; coutb/2tctdtetf8,0x40); outb(inb

9、_p (0x21) & 0x01, 0x21); /允许接收定时器中断 void do_timer(void) 这是定时器主程序,用于每隔一段时间后进行某些操作 8253.asm: /以下是nasm格式的汇编代码,这个中断处理函数必须用汇编 timer_interrupt: push gs push fs push es push ds push ebp push edi push esi push edx push ecx push ebx push eax ;如果你不在操作系统下使用,以下三行必须删除,否则必须把0x10更改为内核段选择符mov eax,0x10 mov ds,ax mov es,ax mov al,0x20 out 0xa0,al ;发送EOI out 0x20,al call do_timer pop ebx pop ecx pop edx pop esi pop edi pop ebp pop ds pop es pop fs pop gs xor eax,eax iretd

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服