这是我的汇编作业
来源:互联网 发布:db2存储过程动态sql 编辑:程序博客网 时间:2024/05/16 14:30
要求:
完成下列操作,用WORD文档记录结果并上交
(操作结果的记录可使用截屏: ALT+PRINT SCREEN)
重要说明:
1.指令中各种内存地址的写法为:
<地址>写法: 段地址:偏移地址; 如 0234:0200 或 DS:0100或 CS:0200等
<偏移地址>写法: 0100或 100.
<地址范围>:
写法1:段地址:起始偏移地址 结束偏移地址;如:02B0:0100 200
或 DS:0100 0200 或 CS:0200 0500
写法2:段地址:起始偏移地址 L长度; 如DS:0100 L100 等价 DS:0100 0200
2.如果命令后地址只跟偏移地址,则其段地址为:
命令: A,U,T,G,P:其默认段地址为 CS;
如 A 100 等价 A CS:0100; U 200等价U CS:200
命令:C,D,E,F:其默认段地址为 DS;
如 D100 等价 A DS:0100; E200等价E DS:200
一.DEBUG常用命令使用练习:
在CMD命令提示符键入DEBUG,回车进入DEBUG;
1、 用DEBUG的R命令查看、改变CPU寄存器的内容;
1) -R:用R命令查看各寄存器的内容并纪录(截图);
2) -R 寄存器名: 用R命令修改寄存器BX、SI、BP的值(截图)。
2、 DEBUG用DEBUG的D命令查看内存中的内容(以下内容分别使用不同的D命令);
1) 用D命令查看从1000:0开始的128个内存单元的内容并纪录(截图);
2) 用D命令查看从2000:8开始的128个内存单元的内容并纪录(截图);
3) 用D命令查看从3000:0开始的10个内存单元的内容并纪录(截图);
4) 用命令查看8086/8088 CPU在开机后执行的第一条指令。8086/8088 CPU在开机后执行的第一条指令在内存FFFF:0H开始处。并纪录第一行指令(截图)
3、 用DEBUG的E命令改写内存中的内容;
用E命令将内存1000:0—1000:9单元中的内容改写为0、1、2、3、4、5、6、7、8、9,并用D命令进行验证,纪录结果(截图)。
4、 用命令D查看DS:200~22F和F000:200~22F两内存块内容,用命令F将字符 ‘A’分别填入这两个内存块,比较填入前后结果,了解可读写内存RAM和只读内存ROM的区别。这两块内存区域有什么不同?纪录结果(截图)。
5、 用DEBUG的U命令将内存中的机器指令翻译成汇编指令;
用E命令从1000:0单元开始写入如下机器码,
机器码
b80100
b90200
01c8
然后用U命令将内存1000:0处的机器指令翻译成汇编指令并截图,并分析每条指令的含义。
6、 用DEBUG的T命令执行机器指令;
用T命令单步执行上题程序段的每条指令并纪录结果(截图)。
7、 DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令。
用A命令将下面的程序段写入内存CS:1000处,用U命令翻译成机器指令,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化(截图)。
-A CS:1000 ↙
MOV AX,4E20H↙
ADD AX,1416H↙
MOV BX,2000H↙
ADD AX,BX↙
MOV BX,AX↙
ADD AX,BX↙
MOV AX,001AH↙
MOV BX,0026H↙
ADD AL,BL↙
ADD AH,BL↙
ADD BH,AL↙
MOV AH,0↙
ADD AL,BL↙
ADD AL,9CH↙
8、 DEBUG的W命令是将内存中二进制数据写入磁盘文件,用法如下:
将上面代码写入文件D:\ ASM01.DAT中步骤:
-N D:\ ASM01.DAT ↙ //命名文件
-R BX↙ //BX CX组合共同表示要写入的文件内存大小(文件长度)
-0↙
-R CX↙ // BX表示长度高位,CX表示长度低价位。
-100↙ //写入长度:00000100(256字节)
-W CS:1000 ↙ // 将CS:1000处开始长度为100H
//个字节写入文件D:\ ASM01.DAT中
然后在资源管理器中察看是否存在D:\ ASM01.DAT? 大小是多少?(截图)
9、 DEBUG的L命令是将磁盘文件载入内存中,和W相反操作,用法如下:
-N D:\ ASM01.DAT ↙ //命名文件
-L CS:100 ↙ // 将文件截稿内存CS:100处
-U CS:100 ↙ //以汇编指令方式看载入内存中的文件内容(截图)
-D CS:100 ↙ //以数据方式(16进制)看载入内存中的文件内容(截图)
- 这是我的汇编作业
- 我的第一次汇编作业!
- 我的汇编作业3
- 第二次的汇编作业
- 第一次作业 图解汇编代码以及分析计算机是如何工作的
- 汇编(输入成绩20个,进行分类,别人的作业,我帮着做的)
- 我的汇编杂谈
- 我的汇编笔记
- 初学java······这是我刚开始的习题作业 ···
- 汇编作业
- 汇编作业
- 汇编作业
- 汇编作业
- 我的作业
- [原创]我的作业
- 我的第一次作业
- 我的作业(二)
- 我的作业(三)
- Exchange Server 2016正式发布啦
- 利用spring定时器发送定时邮件
- Zookeeper源码分析(四)-zoo.cfg的详解和选举的概念
- 为什么要成为一家4点半下班的企业
- txt怎么转换成pdf格式的文件
- 这是我的汇编作业
- 常用函数--不同时间粒度循环取数之sp_Utl_ComboTime
- Nim Game
- 树的子结构
- 数据库 JDBC使用 C3P0使用
- nodejs入门(一)URL与HTTP
- Oracle查找删除记录后表中某一时间点的数据
- 避免用序列化类在构造函数中为不变量赋值
- 画图板的多图形的实现