敢拼才会赢,详细报告地址: 点击这里

1、用Debug命令查看寄存器和内存中的内容

2、上机过程及程序调试
实验性质 必修 实验类型 验证
实验课时 1 实验日期 10.19
实验仪器设备以及实验软硬件要求 硬件环境:计算机系统Windows
软件环境:MASM、DEBUG、LINK等应用程序
实验目的

1、要求掌握使用Debug命令查看寄存器的和内存的方法
2、通过实例认识汇编语言程序,初步了解程序格式、段定义、标号、DOS系统功能、操作数、指令、说明语句等作用。
3、掌握汇编语言程序从设计到形成可执行程序文件的方法和步骤。
4、了解汇编语言的系统工作文件和工作环境。理解汇编程序和连接程序的作用。理解列表文件内容。
5、初步了解程序的运行和调试方法。学会使用Debug主要命令和常用的DOS命令。

实验内容:
①实验内容:
(1)掌握安装使用汇编语言编译运行环境。
(2)使用Debug命令查看寄存器的值。
(3)使用Debug命令查看内存的内容。
②实验内容:
(1)编辑第3章两个简单实例,通过汇编、连接。
(2)用Debug对HELLO程序进行调试。
运用的理论知识:
Debug命令及其相关的功能有:
(1)用Debug的R命令查看、改变CPU寄存器的内容;
(2)用Debug的D命令查看内存中的内容;
(3)用Debug的E命令改写内存中的内容。
(4)用U命令将内存中的机器指令翻译成汇编指令
(5)用T命令执行一条机器指令
(6)用A命令以汇编指令的格式在内存中写入一条机器指令
在这里插入图片描述

2、不同寻址方式的灵活运用

实验性质 必修 实验类型 设计
实验课时 1 实验日期 10.26
实验仪器设备以及实验软硬件要求 硬件环境:计算机系统Windows
软件环境:MASM、DEBUG、LINK等应用程序
实验目的
熟悉和掌握7种不同的操作数寻址方式的使用方法。
实验内容:

3、算术及位串处理程序

实验性质 必修 实验类型 设计
实验课时 1 实验日期 10.26
实验仪器设备以及实验软硬件要求 硬件环境:计算机系统Windows
软件环境:MASM、DEBUG、LINK等应用程序
实验目的
(1)多数位的算术运算、移位操作、字符串操作等程序的设计
(2)学习使用分支与循环等基本编程方法
(3)熟练使用Debug。

实验内容:
实验4-1:
实验内容:在数据段先存放16个十六进制的ASCII码,首地址为ASC。从键盘输入一位十六进制数到BX,用ASC[BX]寻址方式找到对应数位的ASCII码,并取出显示。
实验4-2:
实验内容:用16位指令编制程序,处理32位的加减乘除算术四则运算题。
实验要求:
1.所有变量均定义成字类型,其中应有负数。部分变量也可以使用寄存器,在Debug下临时给出。程序必须在Debug下执行,以便验证结果。
2.跟踪程序,记录每条指令执行后的ZF,SF,CF,OF标志。回答每条指令执行后ZF,SF,CF,OF标志设置的理由。
背景知识:当指令需要双操作数时,要求两个操作数的长度一致,为了解决操作数长度的一致问题,需要将操作数的数据类型进行扩展。同时学习了加减乘除指令
基本原理与算法:由于是16位指令来进行32位的算术运算,必须将操作数进行扩展。
模块介绍:
运算模块:运算数据所在的模块,进行加减乘除四则运算,注意数据需要扩展至32位
结果转移模块:运算结果为了避免被下一个操作数覆盖,需要将其转移到别的寄存器中暂存
设计步骤:
1.自己定义一个加减乘除四则运算:(2X+Y-Z)/5
2.定义数据,由自己定义的运算数据可知,运算从左往右开始进行,先进行2
X的运算,得出的结果保存着在AX和DX中,需要将其转移到别的寄存器,进行与Y的运算时,需要将其进行扩展为32位的
3.运行之后的结果将其保存在bx中
实验4-3:
实验内容:用字符串处理指令编制程序,处理字符的比较和查找,并显示结果。
实验要求:
1.字符串的比较程序中,一个字符串在数据段定义,另一个字符串在程序执行时从键盘输入,必须定义键盘缓冲区,并指出不相等的位置。
2.在字符串中查找某个字符,字符串在数据段定义,在查找的字符在程序执行时从键盘输入,并指出找到的位置。
背景知识:学习了串操作指令,本题主要使用串比较指令,和串传送指令相同,串比较指令涉及两个串,目的串的地址和源串地址由所学知识可知两种操作方式:
字节操作:(ES:DI)-(DS:SI),DI±1,SI±1
字操作:(ES:DI)-(DS:SI),DI±2,SI±2

4、伪指令

实验性质 必修 实验类型 设计
实验课时 1 实验日期 11.2
实验仪器设备以及实验软硬件要求 硬件环境:计算机系统Windows
软件环境:MASM、DEBUG、LINK等应用程序
实验目的
(1)掌握常用的伪指令使用方法。
(2)熟悉定义数据、定义程序模式、分配存储区等功能。

实验内容:
(1)使用16 为指令编写完整程序,实现下列数据定义语句和相关指令,在Debug下查看内存数据的定义情况,单步跟踪查看各寄存器的值
(2)用16位指令编写完整程序,并上机调试,计算W=(X+Y)×Z,其中所有变量均为16位带符号变量

模块设计:次实验分为两个小实验
实验5-1:本实验补全题中代码,运行程序即可
实验5-2:设计步骤:本实验计算W=(X+Y)*Z的值,本题需自己定义X,Y,Z的数据是多少,定义了之后,使用加减乘除四则运算的指令即可做出此题

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

敢拼才会赢,详细报告地址:点击这里

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐