12213049万金梅.doc

上传人:李司机 文档编号:1149159 上传时间:2022-07-05 格式:DOC 页数:17 大小:311.56KB
返回 下载 相关 举报
12213049万金梅.doc_第1页
第1页 / 共17页
12213049万金梅.doc_第2页
第2页 / 共17页
12213049万金梅.doc_第3页
第3页 / 共17页
12213049万金梅.doc_第4页
第4页 / 共17页
12213049万金梅.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《12213049万金梅.doc》由会员分享,可在线阅读,更多相关《12213049万金梅.doc(17页珍藏版)》请在三一办公上搜索。

1、研究性学习报告1. 如果是64位微机,不能直接使用debug。自己从网上查资料,解决此问题。如果是32位机,如此不需此步骤。2. 自学常用的debug命令。用debug调试至少25条汇编指令助记符须是不同的。3. 将整个调试过程用截图与文字说明的方式予以说明。截图文件格式可以是JPG或BMP。4. 将研究型报告于10月23日前发至:cuiyongbjtu.edu。文件名为:学号+某某5. 鼓励用屏幕录象的方式把调试过程做成视频文件WMV格式-要有解说。屏幕录像可以用“屏幕录像专家。6. Debug、后面汇编编程所需相关程序以与汇编程序上机过程说明见文件夹汇编MASM6.11。Debug命令:1

2、.A:对助记符指令进展汇编2.用R命令检查各存放器内容,特别注意AX,BX,CX,DX,IP与标志位中ZF,CF和AF的内容。 注:假如在DEBUG32环境下用R16和R32命令分别显示16位和32位存放器内容3. DDump命令显示主存单元的内容,它的格式如下分号后的局部用于解释命令功 能,不是命令本身: D 地址 ;显示当前或指定开始地址的主存内容 D X围 ;显示指定X围的主存内容;左边局部是主存逻辑地址,中间是连续16 个字节的主存内容16进制数,以字节为 单位,右边局部是这16个字节内容的ASCII字符显示,不可显示字符用点“.表示。 一个D 命令仅显示“8 行16个字节80 列显示

3、模式内容。 再如: -d 100 ;显示数据段100h开始的主存单元-d cs:0 ;显示代码段的主存内容 -d 2f0 L 20 ;显示ds:2f0h开始的20h个主存数据4.位移指令 例如:MOV ax,3e SHL ax,1 MOV cl,3 SAR ax,cl MOV bl,ff ROL bl,1MOV bx,ff00 RCL bx,cl 执行结果如如下图所示:逻辑左移时,移动一位,最低位补0,最后移出的位是0,保存在CF中;算数右移时,移动三位,最高位保持正数补0,最后移出的位是1,保存在CF中不带进位循环左移,由FE变为FD,最后移出1保存在CF中;带进位循环左移,移动三位,移出1

4、保存在CF中,同时CF中的1移到目标单元,由FF00变为F807。5. 无条件转移指令格式:JMP 标号MOV ax,52MOV bx,34 JMP 010A ADD ax,bx MOV ax,21 ADD ax,bx如下列图,程序执行到第三行时,转移到010A处继续执行,跳过第四行的加法指令,所以AX中的操作数没有52与34相加的结果86。6.除法指令 格式:DIV/IDIV src 功能:DIV为无符号数除法,IDIV为有符号数除法,源操作数为除数。 注意:字节除,被除数存入AX中,商存入AL,余数存入AH;字除,被除数存入DX高位和AX地位中,商存入AX,余数存入DX。 BCD码运算调整

5、指令:AAD。对AX中的非组合型BCD码调整为2进制,存入AL中。MOV ax,0204 MOV bl,06 AAD DIV bl 执行结果如如下图所示如下列图,0204先由非组合型BCD码调整为16进制的18H,再进展除法运算,商为04,余数为007. 用命令 E100 41 42 43 44将A-D的ASCII码写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数和ASCII码的对应关系。8. EEnter命令用于修改主存内容,它有两种格式:E 地址;格式1,修改指定地址的内容 E 地址数据表 ;格式 2,用数据表的数据修改指定地址的内容 格式 1 是逐个单元相继修改的

6、方法。例如,键入“e ds:100,Debug显示原来内容, 用户可以直接输入新数据,然后按空格键显示下一个单元的内容,或者按“键显示 上一个单元的内容;不需要修改可以直接按空格或“键;这样,可以不断修改相继单元的内容,直到用回车键完毕该命令为止。 格式 2可以一次修改多个单元,例如: -e ds:100 F3XYZ8D ;用F3/X/Y/Z/8D 这5 个数据替代DS:0100 0104的原来内容。9. 用H命令检查十六进制数的和与差补码表示:例如:55H,34H16 进制数计算命令HHex: H 数字1,数字2 ;同时计算两个16 进制数字的和与差 注:输入 H 55 34 如此在下一行显

7、示0089和0021,即二者的补码和与差。在DEBUG环境下所有数据和地址都是按16进制处理,所以不要加后面的H标志。10. 用R命令将AX,BX内容改写为1155H与25B8H。11. 用A命令在内存400H处键入如下内容: -A 0400 073F:0400 MOV AX,2213 073F:0403 MOV BX,7768 073F:0406 XCHG AX,BX073F:0408 MOV AH,10073F:040A MOV AL,20 073F:040C MOV CX,89AB 073F:040F XCHG AX,CX 073F: 0411用U命令检查键入的程序并记录,特别注意左边的

8、机器码与指令的对应关系。 -U 0400U 地址 :从指定地址开始,反汇编32个字节80 列显示模式 U X围 :对指定X围的主存内容进展反汇编 U 命令中如果没有指定地址,如此接着上一个U 命令的最后一个单元开始;假如还没有使用过U 命令,如此从当前CS : IP 开始。屏幕显示的左边是主存逻辑地址,中间是该指令的机器代码,而右边如此是对应的指令汇编格式。12. 用T命令逐条运行这些指令,每运行一行指令观察各存放器与IP的变化情况,并注意标志位的变化情况。 -T =0400 注:=400是表示从偏移地址400处开始单步执行 -T 不给出地址,如此表示接续上一条指令执行-T-T.跟踪命令TTr

9、ace,也称为单步命令,每执行一条指令就显示运行结果,使我们可 以细致地观察程序的执行情况。 T =地址:逐条指令跟踪 T =地址 数值 :多条指令跟踪 从指定地址起执行一条或数值参数指定条数的指令后停下来,每条指令执行后都要 显示所有存放器和标志位的值以与下一条指令。如未指定地址如此从当前的CS : IP开始 执行。注意给出的执行地址前有一个等号,否如此会被认为是被跟踪指令的条数数值。13. 加减法指令: 1)用A命令在内存100H处键入如下内容: MOV AH,21 MOV AL,22 ADD AL,AH SUB AL,35 MOV CX,1121 MOV DX,5678 ADD CX,D

10、X 用U命令检查键入的程序与对应的机器码。用T命令逐条运行这些指令,检查并记录有关存放器与ZF情况。 14. 带进位加减法: 1)用A命令在内存200H处键入如下内容,并用U命令检查: MOV AH,55 MOV AL,84 MOV CH,56 MOV CL,78 ADD AL,CL用T命令逐条运行这些指令,检查并记录有存放器与CF内容15.数据交换指令 XCHG输入 MOV AL,1000HXCHG 2000H,ALMOV 1000H,AL运行结果如下:16. BCD码加减法1)内容: MOV AL,65 ADD AL,16 DAAU命令检查程序T命令逐条运行指令17.c命令C命令作用:将两

11、块内存的内容进展比拟。 C命令使用时,要指定好要比拟的内存第一个区域的起始和完毕地址,或起始地址和长度,同时要指定要比拟的第二个内存区域的起始地址。具体有如下两种格式。 格式一:c 起始位置1 完毕位置 起始位置2。在提示符“-下执行命令c 100 10f 300,观看命令执行结果,如如下图格式二:c 起始位置1 L长度 起始位置2。18. F命令的使用 F命令作用:使用指定的值填充指定内存区域中的地址。 F命令的格式为:F L长度 填充列表。在提示符“-下输入以下命令:f 2ae5:100 l20 12 23 34 45 56,再输入命令:d 2ae5:100,观看命令执行结果。由执行结果可

12、以看出,该命令是用字节序列12、23、34、45、56,循环填充从2ae5:100开始长度为20H的内存区域。19. M命令的使用 M命令作用:将指定内存区域的数据复制到指定的地址去。 M命令的格式为:M 起始位置1 X围 起始位置2。紧接上一条E指令结果,在提示符“-下输入以下命令:m 2ae5:100 11f 2ae5:140,再输入命令:d 2ae5:100,观看命令执行结果如如下图20.数据传送指令MOV格式:MOV dst,srt 功能:源操作数传送至目标单元,源操作数保持不变。 例如: MOV ax,1f MOV bx,55 MOV bx+20,ax前两步采用立即寻址,将1fH传入

13、AX中,将50H传入BX中,第三步采用存放器相对寻址,将AX中的操作数,传到地址为073F:bx+20的存储器中。假如传送正确,如此最终地址为073F:0070的存储器中应存操作数为1F。操作过程如如下图所示首先用D命令查看0AE3:0070中最初操作数为42H。执行第一步,将1F传到AX中。21. 数据交换指令XCHG 格式:XCHG dst,src功能:源操作数与目标操作数相互交换。 例如: MOV ax,555 MOV bx,2000 XCHG ax,bx 执行结果如如下图所示22. 堆栈操作指令PUSH/POP 格式:PUSH src 功能:先将SP减2修改,然后将源操作数压入SP指定

14、的位置。高字节数据放在高地址单元,低字节数据放在低地址单元。格式:POP dst 功能:先将SP指定位置的一个字数据弹出到目标单元,然后SP加2修改,指向新的栈顶例如:MOV ax,1234 PUSH ax 可以看到SP的指针减了223. 有效地址传送指令LEA 格式:LEA dst,src 功能:源操作数的有效地址EA传送到目标。其中,源操作数必须是存储器寻址,目标数为16位或32位通用存放器。 例如 MOV si,2000 MOV bx,1000 LEA cx,1500bxsi 执行结果如如下图所示24. I/O数据传送指令 1输入指令IN 格式:IN ac,port 功能:将端口的数据送入CPU累加器。2输出指令OUT 格式:OUT port,ac 功能:将CPU累加器中的数据写入端口。 注意:当端口地址为00FFH是,可以用指令直接指定;当端口地址大于00FFH时,需将端口地址装入DX存放器中,再用I/O传送指令传送数据。例如 MOV dx,21ff IN al,dx OUT dx,al 执行结果如如下图所示25. 比拟指令 格式:CMP dst,src 功能:目标操作数减源操作数,不回送结果,只是形成标志位MOV al,14 MOV bl,26 CMP al,bl执行CMP指令后,AX和BX的值没有发生变化,CF标志位置为1,说明AL的值小于BL的值。反之无借位。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号