这是我的汇编作业

来源:互联网 发布:db2存储过程动态sql 编辑:程序博客网 时间:2024/05/16 14:30

要求:

完成下列操作,用WORD文档记录结果并上交

(操作结果的记录可使用截屏: ALT+PRINT SCREEN

 

重要说明:

1.指令中各种内存地址的写法为:

<地址>写法: 段地址:偏移地址; 如 02340200 或 DS0100 CS0200

<偏移地址>写法 0100 100.

<地址范围>

写法1:段地址:起始偏移地址  结束偏移地址;如:02B0:0100 200

                                 或  DS:0100  0200  或 CS:0200  0500

    写法2:段地址:起始偏移地址  L长度;  如DS:0100  L100  等价 DS:0100  0200

 

.如果命令后地址只跟偏移地址,则其段地址为:

命令: AUTGP:其默认段地址为 CS

如 A 100 等价  A CS:0100; U 200等价U CS:200

命令:CDEF其默认段地址为 DS;

如 D100 等价  A  DS:0100; E200等价E DS:200

 

一.DEBUG常用命令使用练习:

 

在CMD命令提示符键入DEBUG,回车进入DEBUG;

 

1、   用DEBUG的R命令查看、改变CPU寄存器的内容;

1) -R:用R命令查看各寄存器的内容并纪录(截图);

2) -R 寄存器名: 用R命令修改寄存器BXSIBP的值(截图)。

 

2、   DEBUG用DEBUG的D命令查看内存中的内容(以下内容分别使用不同的D命令);

1) 用D命令查看从10000开始的128个内存单元的内容并纪录(截图);

2) 用D命令查看从20008开始的128个内存单元的内容并纪录(截图);

3) 用D命令查看从30000开始的10个内存单元的内容并纪录(截图);

4) 用命令查看8086/8088 CPU在开机后执行的第一条指令。8086/8088 CPU在开机后执行的第一条指令在内存FFFF:0H开始处。并纪录第一行指令(截图)

 

3、   用DEBUG的E命令改写内存中的内容;

用E命令将内存10000—10009单元中的内容改写为0123456789并用D命令进行验证,纪录结果(截图)。

 

4、   用命令D查看DS20022FF00020022F两内存块内容,用命令F将字符 ‘A’分别填入这两个内存块,比较填入前后结果,了解可读写内存RAM和只读内存ROM的区别。这两块内存区域有什么不同?纪录结果(截图)。

 

5、   用DEBUG的U命令将内存中的机器指令翻译成汇编指令;

用E命令从10000单元开始写入如下机器码,

机器码                   

b80100

b90200

01c8

然后用U命令将内存10000处的机器指令翻译成汇编指令并截图,并分析每条指令的含义。

 

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进制)看载入内存中的文件内容(截图)

 

0 0
原创粉丝点击