汇编语言与接口技术
文章平均质量分 94
我想当个程序员
这个作者很懒,什么都没留下…
展开
-
汇编语言期末复习总结
汇编语言期末复习总结第一章 汇编基础知识本章目标:理解汇编语言的特点和应用场合;掌握计算机内部的数据表示,特别是补码的表示、特殊值的表示,以及不同编码的数据位数扩展方法;熟悉补码的加减法运算规则,并能应用熟悉常见ASCII码和BCD码理解汇编语言中的数据类型1.1 微型计算机1、微型计算机系统包括硬件系统和软件系统。硬件系统包括计算机和外设,软件系统分为系统软件和应用软件。CPU(微处理器)包括运算器、控制器、内部总线、寄存器组。 应用:要会举外设的例子(键盘鼠标打印机等),同原创 2021-01-11 22:59:33 · 8283 阅读 · 3 评论 -
汇编错题合集——持续更新
1、指出下列指令的错误(1)mov ip,axIP表示的是下一条要执行的指令的偏移地址,不能作为指令的操作数(2)mov es,1234h不能直接往段寄存器中放立即数,需要借助其他寄存器,比如写asm文件时代码段最开头mov ax,data mov ds,ax(3)mov es,ds段寄存器之间不能直接传送数据(4)mov [sp],ax在8086CPU中,只有bx,si,di,bp这四个寄存器可以在[…]进行间接寻址,其他都不可以。比如:这些都是正确的这些都是错误的(5)mov原创 2020-11-05 16:58:22 · 1343 阅读 · 3 评论 -
汇编学习笔记07——BCD码及调整指令
一、BCD码什么是BCD码呢?BCD码的全称是Binary Coded Decimal。可以看出是关于二进制和十进制的编码。我们在写十进制转二进制的时候,采用的是8421编码制,比如十进制的43,在二进制就是 0010 1011而BCD码会将这个十进制的数分割成4和3,分别用两个4位二进制去表示:0100 0011——0100是4 0011是3.BCD码其实有两种格式,压缩BCD码和非压缩BCD码上面写的那种就是压缩BCD码,一个字节的高低四位各表示一个十进制数。而非压缩BCD码则是,一个原创 2020-10-29 22:16:03 · 9507 阅读 · 2 评论 -
汇编语言学习笔记06——加减乘除和其他一些指令
一、加法add和adc在之前我们了解过了add指令,格式为:ADD OPRD1 , OPRD2OPRD1可以是任意通用寄存器或者存储器操作数(就是那个[]),OPRD2可以是寄存器,也可以是立即数,也可以是[],但不能1和2同时都是[]。add指令其实是一个不带进位的加法指令,我们之前也讲过,如果进位了,多进的那一位就会自动丢掉。所以现在我们要学一个带进位的加法指令——ADC在这之前我们需要了解一个叫做CF(carry flag)的进位/错位标志位。它描述了最近的操作是否发生了进位。进位了就是1原创 2020-10-27 21:47:20 · 3555 阅读 · 0 评论 -
汇编语言学习笔记05——debug常用命令
一、什么是debugdebug是dos系统中的一个调试程序。我们在学习汇编语言的时候需要进入dos系统,最方便的就是下载一个dosbox模拟器。在这样的系统环境下,debug程序可以查看CPU的各种寄存器的内容,内存的情况,还可以用机器指令去跟踪程序的运行等等。debug有很多很多命令,本节就介绍一些常用命令,供课堂和考试用。二、debug常用命令1、r 命令r 命令有两个功能,一个是查看寄存器的内容,一个是改变指定寄存器的内容。我们可以看到很多寄存器的内容,还有代码段cs地址为073F原创 2020-10-15 19:40:04 · 3258 阅读 · 1 评论 -
汇编语言学习笔记04——mov和add指令
我们之前说学习汇编不能光看书学理论知识,要结合着实验去做,所以网课也很贴心的给附上了实验的课程。这次先学mov和add指令。首先要说明的是,汇编指令是不区分大小写的。这张图可以很好的解释mov和add指令的作用,需要注意的地方一个是最后一行,其结果存入ax寄存器中。还有就是这里不是debug环境,所以数值默认是10进制的。如果想要表达其他进制,需要在后面加上对应的字母。接下来我们用类似书上例题的形式来分析一些指令,去更快的理解它们。一、写出汇编指令后的结果1、mov ax,4E20H这里是把十原创 2020-10-04 20:32:11 · 28403 阅读 · 9 评论 -
汇编语言学习笔记03——寄存器(CPU工作原理)
引言在笔记01和02我们主要学习了CPU的外部通讯,即CPU如何和其他的器件去联系。而现在呢我们要学习的是内部通讯,即CPU内部是如何工作的。这一段的内容重点在段寄存器上,包括偏移地址 物理地址等。由于将基础知识分为第一大块内容,所以我们现在从 2 来命名2.1 CPU的概述一个典型的CPU有运算器、控制器、寄存器等器件组成,这些器件需要靠内部总线相连。那么我们之前学的地址总线等等三种总线又是什么呢?和CPU内部的总线不一样,它们统称为外部总线。 外部总线主要负责的是实现CPU和主板上各个器件原创 2020-10-04 15:56:40 · 672 阅读 · 2 评论 -
汇编语言学习笔记02——物理地址
接着上次的博客继续写,今天主要写内存空间地址、逻辑存储器1.6 内存空间地址上次我们说到CPU和内存的信息交互需要通过三种总线,其中地址总线是要去内存中找我们需要的地址,那么这个地址又是怎么找的呢?这就需要另外一个概念,内存地址空间。我们上次说,若CPU的地址总线宽度为N,它的寻址空间就为2的N次方Byte(一个内存单元为1Byte)。我们以8086处理器来举例,它的地址总线的宽度为20,则可寻址2的20次方——1MB个内存单元,所以它的内存空间地址是1MB。那么这些0到1MB的内存空间是怎么原创 2020-09-29 19:50:48 · 1911 阅读 · 0 评论 -
汇编语言学习笔记01——汇编基础知识
引言汇编语言是除了机器语言外,最为底层的编程语言。由于机器只能读懂0和1,所以需要转换成人类更易操作的语言(其实设计c等高级语言的原因也包括这点)。同时呢,汇编语言也是其他很多高级语言通向机器的一个桥梁,比如c语言需要编写好后再编译成汇编语言,再转换为机器语言。这样的话就可以自然想到,是不是我可以通过一些反编译的手段去破解一些软件或者其他的呢(逆向工程)?其实也不然,只有机器语言和汇编语言是一一对应的,而高级语言很可能一句话就代表了很多汇编语言的操作,所以正向容易而逆向容易出错。例如一个用c语言编写原创 2020-09-22 22:15:12 · 1296 阅读 · 0 评论