汇编基础知识

1.SI和DI

功能和bx相似,只是不能分成2个8寄存器使用。

2INC ax指令

将寄存器的内容加1

mov ax,0

inc ax

执行完毕ax=1

3.bx,si,di,bp寄存器

CPU的核心是寄存器,学习汇编这么一段时间,我也深刻体会到对寄存器理解的重要性

(1)在8086CPU中,只有这4个寄存器可以在[...]中来进行内存单元的寻址。比如下面指令是正确的。

mov ax,[bx]

mov ax,[bx+si]

mov ax,[bp]

mov ax,[bp+si]

mov ax,[bp+di]

而下面的指令是错误的:

mov ax,[cx]

mov ax,[ax]

mov ax,[dx]

mov ax,[ds]

(2)在[...]中,这4个寄存器可以单个出现,或者只能以四中组合出现:bx和si、bx和di、bp和si、bp和di

比如下面的指令是错误的:

mov ax,[bx+bp]

mov ax,[si+di]

(3)只要在[...]中使用寄存器bp,而指令中没有显性给出段地址,段地址就默认在ss中,比如:

mov ax,[bp]
含义:(ax)=((ss)*16+(bp))

mov ax,[bp+idata]
含义:(ax)=((ss)*16+(bp)+idata)

4.存放段地址的寄存器也可以显示给出,比如:

mov ax,ds:[bp]

mov ax,es:[bx]

5.指令要处理的数据有多长?

8086CPU的指令,可以处理俩种尺寸的数据,byte和word。所以在机器指令中要指明,指令进行的是字操作还是字节操作。对于这个问题,汇编语言如下处理:

(1)通过寄存器指明

mov ax,1

mov bx,ds:[0]

上面都是word

mov al,1

mov al,bl

上面都是byte

(2)在没有寄存器的情况下,用操作符X ptr指明内存单元长度,X可以是word或者byte

mov word ptr ds:[0],1

inc word ptr [bx]

inc word ptr [bx],2

汇编基础知识,布布扣,bubuko.com

时间: 2024-12-08 08:08:21

汇编基础知识的相关文章

汇编基础知识(二)

一.通用寄存器 对于一个汇编程序员来说,CPU中主要部件是寄存器.寄存器是CPU中程序员可以用指令读写的部件.程序员通过改变各种寄存器的内容来实现对CPU的控制. 不同的CPU,寄存器的个数.结构是不同的.8086CPU 有14个寄存器,每个寄存器有一个名称.这些寄存器是:AX.BX.CX.DX.SI.BP.IP.CS.SS.DS.ES.PSW.在今后的学习中我们用到这些寄存器时就对这些寄存器进行介绍. AX.BX.CX.DX四个寄存器可以存放一般性的数据,所以这四个寄存器称为通用寄存器.在80

汇编基础知识二

DEBUG的使用 (要在win32位习题下进行,win7 64位需要安装DosBox和debug这2个软件): 1:win64位下debug的使用教程: 下载debug.exe,这里我把debug放在了c盘根目录下 下载DosBox并安装好, 输入mount c c:\  加载目录到c盘 输入c:\  进入到c盘,看到我们已经在c盘下了. 输入debug,表示打开放在c盘下的debug工具,使用r命令,可以看到,我们进入了熟悉的debug环境. 2:debug的基本命令: R  查看,改变CPU

VC内嵌汇编基础知识

http://www.cppblog.com/xingkongyun/archive/2008/12/21/70003.html 为了加速游戏,一提起汇编语言,大家也许会感到很神秘.其实如果你学起来就会发现,它并非想象中那样难.特别是内嵌汇编,由于它和C++紧密结合, 使你不必考虑很多烦琐的细节(例如输入输出函数的写法),学习起来比较容易.使用内嵌汇编,特别是使用MMX指令,可以大大提高各种游戏中常见特效的速 度,对于编出一个漂亮的游戏非常重要.学好汇编语言还有一个特别有趣的用处:可以观察和看懂

汇编——基础知识

存储器(内存) CPU 是计算机的核心部件.它控制整个计算机的运作并进行运算,要想让一个CPU 工作,就必须向它提供指令和数据. 在一台PC机中内存的作用仅次于CPU. 离开了内存,性能再好的CPU也无法工作.磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU 使用. 存储单元 存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号:例如:一个存储器有128个存储单元(每个存储单元占1B),编号从0~127. 一个CPU的寻址能力指的就是它能找到的存储单元最多有多少(32位C

【转贴】GCC内联汇编基础

原文作者 Sandeep.S英文原文 [https://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html] 本文将介绍GCC编译环境下,在C语言代码中嵌入汇编代码的基本方法.阅读本文需要您具备80X86汇编语言和C语言的基础知识.为了使中文描述更加清楚自然,翻译过程中加入了稍许解释和意译部分. 简介 版权/反馈/勘误/感谢等信息.[^ 1][^ 1]:这里信息价值不大,没有翻译.具体参加原文:https://www.ibiblio.

[汇编] 002基础知识-CPU和寄存器

时间:2014年05月31日 当然这里的内存不仅仅指电脑上的内存,例如:我的金士顿8G内存,七彩虹1G独显,在这里来说,显卡也是有内存的(寄存器) 问题:CPU是如何和电脑主机中其它芯片有条不紊工作的? 答:CPU主要是在操作各个部件的内存,例如要显示一张美女图片 汇编语言的组成 汇编指令 伪指令 其它符号 相关资料: <解密与加密> [汇编] 002基础知识-CPU和寄存器,布布扣,bubuko.com

汇编入门学习笔记 (一)—— 基础知识、寄存器

疯狂的暑假学习之  汇编入门学习笔记 (一) 参考:<汇编语言> 王爽  第一,二章 一.基础知识 1. 用汇编语言编写程序的工作过程 汇编本质就是为了方便程序员,把二进制代码用汇编指令来表示 汇编指令---------------->  编译器  ---------------->机器码----------------> 计算机执行 mov ax, bx                                                          100

汇编入门之路-基础知识

Chapter 1: 基础知识 1.1 机器语言 机器语言是机器指令的集合,展开来讲就是一台机器可以正确执行的命令.电子计算机的机器指令是一列二进制数字.计算机将之转换为一系列高低电平,以使计算机的电子器件收到驱动,进行运算. 1.2 汇编语言的产生 机器语言由二进制表述,难以辨别与记忆,所以产生了汇编语言,它与机器语言的差别在于指令的表示方法上. 例如:机器指令 1000100111011000 表示将寄存器(以后会说到)BX的内容送入AX中.汇编指令则写为 mov ax,bx .这样的写法接

汇编第二章--基础知识梳理与总结

第一章,我们介绍了有关汇编语言的基础知识,在第二章我们主要介绍寄存器. CPU的主要部件是寄存器,在8086CPU有14个寄存器,它们分别是:AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW.8086CPU的所有寄存器都是16位的,可以存放两个字节.AX.BX.CX.DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器.由于8086CPU的上一代CPU中的寄存器都是8位的,为了保持兼容,8086CPU的AX.BX.CX.DX这4个寄存器都可分为两个独立使用