用机器指令和汇编指令编程(1)实验报告

实验结论

实验任务(1)

1.用E命令将指令写入内存

首先用E命令向从1000:0开始的内存单元中写入了任务要求的机器码;然后用R命令查看CPU中寄存器状态,可以看到,CS=073FH、IP=0100H,指向内存073F:0100;接着用R命令修改CS、IP中的内容,使CS:IP指向1000:0。然后用T命令执行写入的指令,执行T命令后,1000:0处的指令b8 20 4e(mov ax,4E20H)得到执行。指令执行后,AX中的内容被改写为4E20H,IP改变为IP+3(因为mov ax,4E20H的指令长度为3个字节),CS:IP指向下一条指令。接着继续用T命令逐个执行,最后CS:IP指向1000:0021,说明指令总长度为21个字节。

2.用A命令将指令写入内存

用A命令向从1000:0开始的内存单元中写入了任务要求的汇编指令,其他操作同上。

实验任务(2)

首先用A命令将任务要求的指令写入从2000:0开始的内存单元中,然后用T命令从2000:0处开始执行指令,执行8次后,得到结果AX=0100H。

实验任务(3)

表示生产日期的数据存放在FFF0:00F6到FFF0:00FE的内存单元中,它们的ASCII码意义为01/01/92。

实验任务(4)

用E命令写入数据,再用D命令读取数据。

现象如图:改变填写数据后,第二次使用D命令时,内存单元并没有显示之前用E命令存放的数据,而是其他数据。改变填写地址没有变化。

实验总结与体会

  通过本次实验,我基本掌握了使用debug工具编写的方法和几个基本调试汇编命令。这次实验让我认识到亲自上机操作的重要性,只是在课堂上学到的知识是远远不够的,上机后才发现有些操作要多练才能掌握。

在实验中,我也遇到了一些困难,比如:debug一行的空间有限,不能一次输入大量数据。在实验任务(1)中,我在用E命令将指令写入内存时,由于机器码过于冗长,不能在同一行输入完,但自动换行时不能继续输入,只能把代码分成两部分分别输入执行,这浪费了一些时间。这也让我认识到汇编指令相对于机器码的优势和方便之处。

原文地址:https://www.cnblogs.com/yangpengassembly/p/9740392.html

时间: 2024-10-08 16:25:50

用机器指令和汇编指令编程(1)实验报告的相关文章

用机器指令和汇编指令编程(修改版)

实验名称 用机器指令和汇编指令编程(1) 实验日期   2018.10.22 学院:计软院 专业:计算机科学与技术 年级:2017级 班次:5班 姓名:陈奕明 学号 20171308194 一.实验目的 1. 掌握使用debug工具编写和调试汇编命令的方法 2. 掌握第1-2章所学的关于CPU.寄存器.内存的基础知识 3. 掌握第1-2章涉及的几条指令mov, add, sub, jmp的用法 二.实验准备 1. 复习教材第1~2章内容,完成教材内相关检测点 2. 结合教材实验1 (P35)及公

实验一 用机器指令和汇编指令编程

一.实验目的 1.熟悉基本debug命令:a.r.d.e.u.t 2.掌握汇编指令与机器指令的对应关系 3.掌握利用debug命令查看修改内存.寄存器的方法 二.实验要求 (1)仔细阅读实验教程中DEBUG的使用部分: (2)使用DEBUG中的A命令输入一段程序段: (3)用DEBUG中的R命令观察寄存器中数据的存放情况,改变寄存器的值: (4)用DEBUG中的D命令查看数据在内存中的表示方法: (5)用DEBUG中的E命令修改内存中的数据: (6)用DEBUG中的T命令执行一条语句: 三.实验

汇编实验二 用机器指令和汇编指令编程

实验二  用机器指令和汇编指令编程 任务一: (1)用E命令将内存单元0021:0~0021:7连续8个字节数据修改为30H,31H,32H,33H,34H,35H,36H,37H. (2)用A命令输入汇编指令: (3)用T命令单步执行: 在用T命令执行MOV SS,AX时,它的下一条指令MOV  SP,0100同时执行. (4)填写书上内容: 任务二: 观察如图实验过程,分析为什么2000:0~2000:f中的内容会发生改变. 任意时刻,SS:SP指向栈顶元素,初始时栈为空.初始时,栈顶为0B

实验1 查看CPU和内存,用机器指令和汇编指令编程

·实验任务 (1)使用Debug,用E命令和A命令以两种方式将指令写入内存 机器码        汇编指令 b8 20 4e    mov ax,4e20h 05 16 14    add ax,1416h bb 00 20    mov bx,2000h 01 d8         add  ax,bx 89 c3         mov bx,ax 01 d8         add  ax,bx b8 1a 00    mov ax,001ah bb 26 00    mov bx,002

实验1 查看CPU和内存、用机器指令和汇编指令编程

 实验任务 一.使用Debug,用E命令和A命令以两种方式将指令写入内存 机器码        汇编指令 b8 20 4e     mov ax,4E20H 05 16 14     add ax,1416H bb 00 20     mov bx,2000H 01 d8          add  ax,bx 89 c3          mov bx,ax 01 d8          add  ax,bx b8 1a 00     mov ax,001AH bb 26 00     mov

【汇编语言】实验2 用机器指令和汇编指令编程(2)

四.实验结论 任务一:使用debug,将下面程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空. 1.使用r命令查看各寄存器初始值. 2.使用a命令编写汇编指令. 3.使用t命令单步执行. 4.分析 此实验使用栈实现了寄存器值的交换 指令 ax bx ss sp mov ax,ffff FFFF 0000 073F 00FD mov ds,ax FFFF 0000 073F 00FD mov ax,2200   2200 0000 073F 00FD mov ss,ax   2200 0

实验 2 用机器指令和汇编指令编程

实验结论 实验任务(1) 1.使用 e 命令修改 0021:0~0021:f 数据,及修改后查看是否正确写入的操作 2.使用 a 命令输入指令 3.每一行指令单步调试 4.指令执行后各个寄存器存值情况 mov ax,[0];             ax=3130H add ax,[2];              ax=6462H mov bx[4];              bx=3534H add bx,[6];              bx=6C6AH push ax;       

实验1 —— 用机器指令和汇编指令编程(2)

debug 指令补充 在执行 d 命令时可以带地址参数 (段地址: 偏移地址),其中的段地址会先被送到 ds 寄存器,再交给处理器. 因此,d 命令也可以这样用: d SR:offset (SR指段寄存器) 例如: -r ds :1000 -d ds:0 ;查看从 1000:0 开始的内存区间中的内容 -r ds :1000 -d ds:10 18 ;查看 1000:10 ~ 1000:18 中的内容 -d cs:0 ;查看当前代码段中的指令代码 -d ss:0 ;查看当前栈段中的内容 当然 e

【汇编语言】——用机器指令和汇编指令编程

初入大二,刚刚接触和学习汇编语言这门课程,肯定有很多的不足和漏洞:本篇文章是关于王爽编著的<汇编语言>(第三版)第二章的章后实验的实验报告和总结. 一 实验环境的配置和测试 Debug是DOS,Windows都提供的实模式(8086方式)程序的调试工具.使用它,可以查看CPU各种寄存器中的内容,内存的情况和在机器码级跟踪程序的运行.64位win10系统下,可以通过安装DOSBox软件来配置一个虚拟的工作环境. 相关的软件放在我的百度云盘,还没有安装的可以通过以下链接下载. 链接: https: