汇编语言第二章实验

学习当然不能只是看书上的知识啦,只有实际上手操作才能体验到计算机语言的乐趣与奥妙。接下来就是我根据书上的实例和实验在个人计算机上做出的练习

先熟悉一下-e  -a等命令

CS=073F,IP=0100,所以内存073F:0100处的指令为cpu当前要读取和执行的指令,此处存放的机器码为00 00 ,对应的汇编指令为ADD balabalbla

-r命令可以改变寄存器中的内容(修改cs与ip的内容)

-d查看10000H(1000:0)内存处的内容(-d 1000:0会列出当前地址开始的128哥内存单元的内容)

行起始地址       内存单元内容                                                                                数据对应的ASCII码

-e改写内存内容

用-e将机器码写入内存再用-u察看机器码对应的汇编指令

-t执行一条或多条汇编指令(将cs:ip指向1000:0)

-a以汇编指令的形式在内存中写入机器指令

实验任务

(1)

这个实验注意寄存器溢出不计,编译时cs:ip地址注意指向起始写入地址,-e写机器指令,-a写汇编指令

(2)

jump2000:0003表示修改cs:ip,在此实验中表现为重复编译add ax,ax;

使用-a命令执行daa ax,ax 8次就是2的8次方的16进制0100H,十进制的256

(3)

如图所示命令可知,dos内显示区域起始位置为b8000,奇数项数字控制图案(第一行中的奇数项1代表笑脸),偶数项两个数字,后位代表0-f共16种颜色,前位0-7和8-f颜色都有背景色(颜色和后位一样,而且8-f有闪烁效果)

由下图可知我的实验三显示的是显存地址空间的内容

实验3总结不全,忘各位大佬指正。

原文地址:https://www.cnblogs.com/Sakura0-0/p/9749069.html

时间: 2024-11-08 08:05:12

汇编语言第二章实验的相关文章

汇编语言 第二章 寄存器检测点2.2 第二题

这道题是汇编语言第二版的习题,一开始我也是百思不得其解,下面看看吧: 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻址到此单元, 则SA 应满足的条件是:最小为 1001H 最大为 2000H :最大值: (很多人最大值很容易算出来,但是最小值卡住了,很纳闷为什么是1001H)我们可以根据原题列出一个式子: X * 10H + 0H = 20000H 我们之前是乘以16,但是那个16是十进制的,因为整个式子里都是16进制,加入个10进制去算会出错的所以呢,我们把16转

汇编语言第二章总结

第二章里我们学习了寄存器的内容.了解到一个典型的CPU由运算器.控制器.寄存器等器件构成,这些器件靠内部总线相连.前一章所说的总线,相对于CPU内部来说是外部总线.内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系.在CPU中,运算器进行信息处理:寄存器进行信息存储:控制器控制各种器件进行工作:内部总线连接各种器件,  在它们之间进行数据的传送. 对于一个汇编程序员来说,CPU中的主要部件是寄存器.寄存器是CPU中程序员可以用指令读写的部件.程序员通过改变各种寄存

汇编语言第二章知识梳理及思考

第二章 寄存器(CPU工作原理) CPU概述 CPU由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现CPU内部各个器件之间的联系. 外部总线实现CPU和主板上其他器件的联系. 寄存器概述 8086CPU有14个寄存器: AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW. 2.1通用寄存器 8086CPU所有的寄存器都是16位的,可以存放两个字节. 通用寄存器:AX.BX.CX.DX通常用来存放一般性数据. 以AX为例,寄存器的逻辑结构

第二章实验实践报告

实践报告 第一题 实践题目 问题描述 算法描述 算法时间及空间复杂度分析(要有分析过程) 心得体会(对本次实践收获及疑惑进行总结) 1.实验题目:二分查找 2.问题描述 输入n值(1<=n<=1000).n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数.若x不存在,输出-1和比较次数. 3.算法描述 二分查找算法关键是下标的mid.left.right的变化,开始是left=0和right=length-1,接着就要判断需要查找的值x和mi

第二章实验报告

一.题目: 7-3 两个有序序列的中位数. 二.问题描述: 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A0,A1,?,AN?1的中位数指A(N?1)/2的值,即第?(N+1)/2?个数(A0为第1个数). 三.算法描述: 首先要对两个等长数组进行重新排序,可以考虑直接合并再排序或者新建一个数组进行排序.合并再排序要多次移动数据,运算次数较多,因此我选择了新建一个数组,边导入数据边进行排序. 因为两个等长数组的排列是有规律的(由小到大),所以我可以直接比较

算法第二章实验报告

实践题目:二分查找. 问题描述:输入n值(1<=n<=1000).n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数.若x不存在,输出-1和比较次数. 算法描述: int BinarySearch(int a[],int x, int n){//在数组a[i]中查找X,找到返回X在数组的位置,否则返回-1 int left = 0; int right = n-1; int count = 0;//设数组位置左边为0:右边为n-1;定义cou

汇编语言:第二章 寄存器

一个典型的CPU由运算器.控制器.寄存器组成,内部总线连接各部分器件 寄存器是程序员可以用指令读写的部件,通过改变寄存器里的内容从而实现控制CPU, 不同CPU 寄存器的个数结构是不一样的,8086有14个寄存器 2.1通用寄存器 8086所有的寄存器都是16位的,可以存放2个字节,AX.BX.CX.DX用于存放一般性数据,成为通用寄存器 为了兼容旧的8位寄存,每个16位寄存器可以分为2个单独的8位寄存器来使用,名字分别用AH.AL来表示高8位和低8位 2.2字在寄存器中的存储 字节byte:可

汇编语言第二章知识梳理

一个典型的cpu由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现cpu内部各个器件之间的联系.外部总线实现cpu和主板上其他器件的联系. 8086CPU中的14个寄存器:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW 概括的讲,16位结构描述了一个cpu具有以下几个方面的特征:(1)运算器一次最多可以处理16位的数据.(2)通用寄存器的最大宽度为16位.(3)寄存器和运算器之间的通路是16位的. 8086cpu有20位地址总线,可传

数据结构第二章实验

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,0026h 00 d