汇编语言(王爽第三版)第二章读书笔记

王爽 《汇编语言》 读书笔记 十七 第十七章 使用BIOS进行键盘输入和磁盘读写 17.1 int9中断例程对键盘输入的处理 一般的键盘输入,在cpu执行完int9中断例程以后,欧放到了键盘缓冲区中。 键盘缓冲区有16个字单元,可以存储15个按键的扫描码和对应的ASCII码。 参照书P300页 关于键盘缓冲区的存储利用了队列或者环形队列数据结构。 17.2 使用int16h中断例程读取键盘缓冲 阅读详情

寄存器

一个典型的CPU由运算器,控制器,寄存器等器件构成,这些靠内部总线相连,第一章说的总线相对于CPU内部来说是外部总线,而内部总线负责实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系,就是说在CPU中:

运算器进行信息处理

寄存器进行信息储存

控制器控制各个部件

内部总线连接器件,在它们间进行数据传送

16位机的结构具有CPU下面几方面的结构特性

  • 运算器一次最多可以处理16位的数据
  • 寄存器的最大宽度为16位
  • 寄存器和运算器之间的通路为16位

在这里插入图片描述

如图所示 当8086CPU要读写内存时:

  1. CPU中的相关部件提供两个16位的地址,一个为段地址,一个为偏移地址
  2. 段地址和偏移地址通过内部总线送入一个称为地址加法器的部件
  3. 地址加法器将两个16位地址合成一个20位的物理地址
  4. 地址加法器通过内部总线将20位物理地址送上地址总线
  5. 输入输出控制电路将20位物理地址送上地址总线
  6. 20位物理地址被地址总线传送到存储器

在这里插入图片描述

CPU在访问内存时,用一个基础地址(段地址×16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址

一般来说,8086CPU的这种寻址功能是基础地址+偏移地址=物理地址 寻址模式的一种具体实现方案,8086CPU中,段地址×16可以看做是基础地址

需要注意的是:段地址×16必然是16的倍数,所以一个段的其实地址也一定是16的倍数:偏移地址位16位,16位的地址的寻址能力位2^16即64KB,所以一个段的长度最大为64KB

在这里插入图片描述

cs= code segment 代码段寄存器

ip = instruction pointer 指令指针

下面的一组图展示了8086CPU读取和执行一条指令的过程

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过上面的过程,8086CPU的工作过程如下:

  1. 从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器
  2. IP= IP+所读取指令的长度,从而指向下一条指令
  3. 执行指令,跳到步骤1,重复过程

实验一

环境:Windows 2000

实验用到的命令

  1. 查看、修改CPU中寄存器的内容:r命令
  2. 查看内存中的内容:d命令
  3. 修改内存中的内容:e命令(可以写入数据、指令,在内存中,实际上没有差别
  4. 将内存中的内容解释为机器指令和对应的汇编指令:u命令
  5. 执行CS:IP指向的内存单元出的指令:t命令
  6. 以汇编指令的形式向内存中写入指令:a命令
    在这里插入图片描述

修改CS、IP的指令

jmp

要分清l和1啊啊啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

这个就是为什么我前面说的要分清l和1的区别

原因: 要分清l和1啊啊啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

实验2
在这里插入图片描述
在这里插入图片描述

实验3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验4

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

对于实验3、4的解释
在这里插入图片描述

在图中,所有的物理存储器被看做一个由若干存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个地址空间,CPU在这段空间中读写数据,其实就是在相对应的存储器中读写数据。在8086CPU中内存地址分配的情况如下
在这里插入图片描述

0000~9FFFF的内存单元中读取数据,实际上就是在读取随机存储器上的数据

A0000~BFFFF内存单元中写数据,就是想显存中写入数据,这些数据被显示卡输出到显示器上

C0000~FFFFF的内存中写入数据的操作是无效的,因为这等于改写只读存储器中的内容

汇编语言(王爽版) 汇编语言(王爽版),汇编语言中的经典教材 立即下载

相关推荐

王爽汇编 电子书 pdf格式(带课后习题答案)

第1章 基础知识 1.1 机器语言 1.2 汇编语言的产生 1.3 汇编语言的组成 1.4 存储器 1.5 指令和数据 1.6 存储单元 1.7 CPU对存储器的读写 1.8 地址总线 1.9 数据总线 1.10 控制总线 1.11 内存地址空间(概述) 1.12 主板 1.13 接口卡 1.14 各类存储器芯片 1.15 内存地址空间 第2章 寄存器(CPU工作原理) 2.1 通用寄存器 2.2 字在寄存器中的存储 2.3 几条汇编指令 2.4 物理地址 2.5 16位结构的CPU 2.6 8086CPU给出物理地址的方法 2.7 “段地址×16+偏移地址=物理地址”的本质含义 2.8 段的概念 2.9 段寄存器 2.10 CS和IP 2.11 修改CS、IP的指令 2.12 代码段 实验1 查看CPU和内存,用机器指令和汇编指令编程 第3章 寄存器(内存访问) 3.1 内存中字的存储 3.2 DS和[address] 3.3 字的传送 3.4 mov、add、sub指令 3.5 数据段 3.6 栈 3.7 CPU提供的栈机制 3.8 栈顶超界的问题 3.9 push、pop指令 3.10 栈段 实验2 用机器指令和汇编指令编程 第4章 第1个程序 4.1 一个源程序从写出到执行的过程 4.2 源程序 4.3 编辑源程序 4.4 编译 4.5 连接 4.6 以简化的方式进行编译和连接 4.7 1.exe的执行 4.8 可执行文件中的程序装入内存并运行的原理 4.9 程序执行过程的跟踪 实验3 编程、编译、连接、跟踪 第5章 [bx]和loop指令 5.1 [bx] 5.2 Loop指令 5.3 在Debug中跟踪用loop指令实现的循环程序 5.4 Debug和汇编编译器Masm对指令的不同处理 5.5 loop和[bx]的联合应用 5.6 段前缀 5.7 一段安全的空间 5.8 段前缀的使用 实验4 [bx]和loop的使用 第6章 包含多个段的程序 6.1 在代码段中使用数据 6.2 在代码段中使用栈 6.3 将数据、代码、栈放入不同的段 实验5 编写、调试具有多个段的程序 第7章 更灵活的定位内存地址的方法 7.1 and和or指令 7.2 关于ASCII码 7.3 以字符形式给出的数据 7.4 大小写转换的问题 7.5 [bx+idata] 7.6 用[bx+idata]的方式进行数组的处理 7.7 SI和DI 7.8 [bx+si]和[bx+di] 7.9 [bx+si+idata]和[bx+di+idata] 7.10 不同的寻址方式的灵活应用 实验6 实践课程中的程序 第8章 数据处理的两个基本问题 8.1 bx、si、di、bp 8.2 机器指令处理的数据所在位置 8.3 汇编语言中数据位置的表达 8.4 寻址方式 8.5 指令要处理的数据有多长? 8.6 寻址方式的综合应用 8.7 div指令 8.8 伪指令dd 8.9 dup 实验7 寻址方式在结构化数据访问中的应用 第9章 转移指令的原理 9.1 操作符offset 9.2 jmp 指令 9.3 依据位移进行转移的jmp指令 9.4 转移的目的地址在指令中的jmp指令 …… 第10章 call和ret指令 第11章 标志寄存器 第12章 内中断 第13章 int指令 第14章 端口 第15章 外中断 第16章 直接定址表 第17章 使用BIOS进行键盘输入和磁盘读写 附注

汇编语言(王爽老师)

自学完王爽老师的汇编语言,对一些关键知识点进行梳理。 目录 第一章 基础知识 第二章 寄存器 第三章 寄存器(内存访问) 第4章 第一个程序 第5章 [BX]和loop指令 第6章 包含多个段的程序 第7章 更灵活的定位内存地址的方法 第8章 数据处理的两个基本问题 第9章 转移指令的原理 第10章 CALL和RET指令 第11章 标志寄存器 第12章 内中断 第13章...

heart_in_someone的博客 9999

王爽 汇编语言 高清版 (带注释) part1

王爽的汇编语言,决对是学习汇编的入门首选,这个是高清版,我这个是30M,比一般的13M清楚很多,一般的13M的都不带书签,我这个每一个章节都分好了书签,方便大家使用 PS:由于得上传权限是20M,而这个文件有20M,所以我分成了2个压缩包,大家下完一个,点作者的其他资源下另一个

《汇编语言》第四版王爽PDF下载

《汇编语言》第四版王爽PDF下载

m0_74469506的博客 1万+

《汇编语言第4版王爽》全部检测点、实验任务与课程设计答案

包含asm、obj和exe文件,注释详细。除此之外还包含学习笔记(PDF版和GoodNotes5版),DOSBox0.74-3入门教程以及汇编环境搭建教程,功能强大的文本编辑器UE(支持官网更新),教材用到的所有文件以及汇编常用文件,例如masm5.0/debug.exe/link.exe/tc2.0.exe/errout.exe/cref.exe等

新建菜单Office被替换为腾讯文档 - 解决方案

右键新建菜单中的Office被替换为腾讯文档。原因是安装了腾讯文档软件,此软件安装时会自动将新建菜单中的Office替换为腾讯文档,下文介绍解决方案。

NSJim的博客 2932

汇编语言(王爽)

王爽老师《汇编语言》的学习历程

我只做自己 5536

JSSIP实战:5分钟搞定WebRTC电话功能(附完整代码示例)

本文通过JSSIP库实战演示如何在Web应用中快速集成WebRTC电话功能。文章提供了从环境准备、SIP服务器连接到完整代码示例的详细步骤,涵盖用户注册、拨号接听、媒体流处理等核心环节,并针对常见问题给出排查方案,帮助开发者高效实现网页端实时语音通信。

u8v9w0x1y的博客 518

汇编语言 知识点梳理(王爽)

汇编语言(王爽) 第一章 基础知识 汇编语言的三类指令 (1)汇编指令:机器码的助记符,有对应的机器码 (2)伪指令:没有对应的机器码,由编译器执行,计算机不执行 (3)其它符号,如+,-,*,/等,由编译器识别,没有对应的机器码 指令和数据 在内存或磁盘上,指令和数据没有区别,都是二进制信息 总线 地址总线:一个CPU有N根地址总线,可以说、CPU的地址总线宽度是N,最多可以寻找2的N次方个内存单元 数据总线:宽度决定cpu与外界数据传送速度 控制总线:宽度决定cpu对外部器件的控制能力 第二

qq_52149232的博客 4427

手把手教你用AirSim生成无人机训练数据集:RGB/深度图/分割图全攻略

本文详细介绍了如何使用AirSim仿真插件在UE4环境中生成无人机训练数据集,涵盖RGB、深度图和分割图等多种模态数据的采集与处理。通过实战指南,读者可以掌握环境配置、多模态数据采集、自动化流程设计及数据后处理等关键技术,为无人机视觉算法开发提供高质量训练数据。

weixin_29008805的博客 449

大专非科班拿下汇丰外包Java岗:我的TEKSystem面试全流程复盘(含IKM笔试真题)

本文详细记录了一位非科班大专生成功通过TEKSystem面试,拿下汇丰银行Java外包岗位的全过程。从IKM全英文笔试到技术面试,作者分享了7个关键转折点的实战经验,包括简历优化、技术考点、英语面试策略及薪酬谈判技巧,特别适合初级Java开发者参考。

weixin_30074763的博客 393

《汇编语言》-王爽-第三版-读书笔记-前言

重新开始学习汇编语言,也是重新梳理编程的开始。以后要循序渐进,不能急功近利,走稳每一步。此博客为第一天学习汇编语言的前言的读书笔记。

zhaofengtxlxz的专栏 850

ArcGIS新手必看:HWSD2土壤数据从下载到批量提取TIFF的完整流程

本文详细介绍了ArcGIS中HWSD2土壤数据的完整处理流程,从数据下载、预处理到批量提取TIFF文件。涵盖栅格属性表构建、属性数据连接及性能优化等关键步骤,帮助新手高效掌握HWSD2数据提取技术,提升地理信息数据处理效率。

ll5678的博客 1036

汇编语言(第三版) 王爽 读书笔记

前言:书终于看完了,在这里做一下笔记,以备忘,也与大家分享知识,第一次在优快云上写博客,如有不足还望大家多多指正,欢迎大家在下面留言讨论!写在前面:①  想要零基础学汇编的朋友可以看这里,在这里我强烈向大家推荐王爽老师的这本《汇编语言》,真的写的非常好,思路清晰,通俗易懂,知识循序渐进,每章都有小习题、实验(还有提醒一定要完成实验,非常贴心),可以说是非常好了。②下面我要介绍的汇编语言主要是基于...

Anthony_XL的博客 4498

C#上位机与MES系统数据对接:从协议选型到安全传输的实战解析

本文详细解析了C#上位机与MES系统数据对接的全过程,从协议选型到安全传输的实战技巧。针对工业互联网场景下的数据对接挑战,提供了RESTful API、MQTT和OPC UA等协议的选型建议,并分享了健壮性设计、异常处理和安全传输的实用代码示例,帮助开发者高效实现数据上传与系统集成。

weixin_30566063的博客 105

基于STM32设计的个人健康检测仪(华为云IOT)(191)

本系统采用华为云物联网平台实现数据云端存储与分析,并通过自研手机APP提供远程监控界面,让用户无论身处何地都能及时掌握自身的健康数据,为用户提供个性化的健康管理方案,同时也为医疗机构提供了便捷的数据获取途径,助力实现智能化、精细化的医疗服务。

1678

千哥读书笔记:汇编语言(王爽第四版)第8章实验七

前几天有人问千哥,汇编语言(王爽第四版)实验七,实在是太难了,应该怎么才能完成这个实验。千哥虽然一直在做产业投资,但对于汇编语言还是非常熟的。

ncppk的专栏 3221

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:BLDC电机PID电流控制策略仿真

*无刷直流电机(Brushless DC Motor, BLDC)**因其高效率、长寿命和低维护成本,在众多领域如家用电器、工业自动化、电动汽车等得到了广泛应用。为了实现对BLDC电机的有效控制,通常采用基于霍尔传感器或反电动势检测的换相技术,并结合电流闭环控制以提高系统的动态响应和稳定性。本教程将带你使用构建一个基于PID控制的BLDC电机电流控制策略仿真模型BLDC电机建模PID控制器设计与应用系统仿真与调试控制效果分析本文介绍了如何使用构建一个。

MHD0815的博客 197

千哥读书笔记:汇编语言(王爽第四版)第9章 实验八

前几天,千哥在发表了《千哥读书笔记:汇编语言(王爽第四版)实验七》以后,又有朋友问,汇编语言(王爽第四版)第9章 实验八,完全搞不懂。下面,千哥再来逐一解析。

ncppk的专栏 967

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

《汇编语言》王爽 读书笔记之一硬件基础

汇编语言是直接在硬件之上工作的编程语言,因此在编程前需要首先了解硬件系统的结构。 1. 机器语言 机器语言是机器指令的合集,机器指令是一串二进制数字,计算机将其转变为一系列高低电平,驱动计算机进行运算。 负责运算的是CPU,每一种CPU由于硬件设计和内部结构的不同,需要用不同的电平脉冲来控制其工作。所以每一种CPU都有自己的机器指令集,也就是机器语言。 机器语言难以记忆与使用,于是有了汇编语言。 2. 汇编语言 汇编语言的主体是汇编指令。汇编指令是机器指令便于记忆的书写格式。 如: 操作:将寄存器BX的内容

sinat_36105718的博客 530

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

汇编语言(王爽)第四版笔记

汇编语言(王爽)第四版笔记 纯小白,只是自己学完后用了一下午总结的笔记,请大佬绕过啦! 因为我学习汇编语言只是把它当做知识储备,所以对于里面的很多知识进行了删减。有错误或者不恰当之处还请多多斧正! 具体地讲,把整本书分为了寄存器,指令集,内存定位,中断这四个部分。只是一个大概的概括,想详细地学还要看书哦!强烈推荐王爽老师的这本书。下面是笔记,字写得很差,见谅( '▿ ’ )。 ...

u013677637的博客 573

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汇编语言读书笔记(5.[BX]和loop指令)

[BX]和loop指令 汇编语言中,以字母开头的数据前面要加0 [BX] [bx]表示内存单元,地址为ds:bx Loop指令 cup执行loop指令时 ①cx=cx-1 ②判断cx中的值,不为0则跳转到标号处执行程序,为0则向下执行 计算2^12 mov ax,2 mov cx,11 s: add ax,ax loop s 使用debug时,若要将循环一次性执行完,可以使用p命令,自动重复执行循环,也可使用g命令(g xxxx)直接执行到CS:xxxx处,而不是一次次使用t命令

weixin_45458577的博客 248

千哥读书笔记:汇编语言(王爽)第10章实验10三个子程序的源码

​ 这三个子程序的源码,其中解决除法溢出的问题(divdw)对比较难以理解,所以单独写了一篇读书笔记《千哥读书笔记:汇编语言(王爽第四版)第10章实验10第2题divdw程序编写》

ncppk的专栏 887

千哥读书笔记:汇编语言(王爽第四版)第15章15.4 编写int 9 中断例程

这一章的难度相对较低,但还是有很多细节没有讲清楚,或者这本身就是王爽老师写书的一种风格,即故意不讲清楚一些细节,而让读者自己去摸索,从而加深学习知识的印象。 比如本章的15.4 编写int 9 中断例程,所举的例子,“在屏幕中间依次显示”a"~"z",在显示的过程中,按下ESC键后,改变显示的颜色”,就有一些细节需要自己去摸索和理解。

ncppk的专栏 2154

《汇编语言第三版(王爽)》 读书笔记

前言      说起自己读汇编,总有人会在问:读汇编有啥意义?读汇编对我的开发工作有帮助吗?...我觉得读汇编是为了让我们更好地有计算机工作原理方面的知识,不仅仅是一味地高屋建瓴。就拿 IDE 和 Linux gcc 来说,我们为什么要试着用 gcc 去编译链接并生成可执行程序,而不是点一下 Run 程序就能跑起来?原因还是在我们想探究程序运行的本质。   而汇编就是一门帮助我...

aibin6833的博客 248

千哥读书笔记:汇编语言(王爽第四版)第10章课程设计1

关于这一部分内容,可以复习一下千哥前面写的笔记:《千哥读书笔记:汇编语言(王爽第四版)第8章实验七》。

ncppk的专栏 1392
上一篇: 汇编语言(王爽第三版)第一章读书笔记
下一篇: LeetCode第一题题解以及需要注意的事情....
Viceeeee
博客等级 码龄9年 21粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值