汇编语言学习笔记2

1.严格来说汇编语是由以下三部分组成:

1.汇编指令:助记符,即用英语字符替换机器码

2.伪指令:由编译器编译执行,即Mov等控制指令

3.其它符号:由编译器编译执行,计算机是不能识别"+","-"等符号,所以需要编译器编译成机器语言

2.汇编语言的核心是汇编指令,他决定汇编语言的特性

3.我们都知道CPU是计算器的核心部分,想让CPU工作,必须向他提供指令和数据,指令即告诉计算机让它做什么,数据是告诉计算机,让它拿哪些数据做

4.指令和数据在存储器中存放,也就是平时所说的内存,内存的作用仅次于CPU,没有内存,即使在强大的CPU也无法工作,举个例子,就像人体的心脏和血管之间的关系,心脏在强大,没有血管,人也活不下去,磁盘数据或程序必须先读到内存中,才能被CPU使用。利用我们使用的虚拟内存,就是将内存中一些不常用的数据放在硬盘上,等用到的时候再从硬盘取出到内存中,会导致计算机速度的变慢

6.指令和数据是应用上的概念,在计算机看来是没有区别的,都是机器码即为二进制代码

7.存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号

8.计算机上常用的单位:

1KB=1024B    2的10次方

1MB=1024KB

1GB=1024MB

1TB=1024GB

9.cpu对数据读写,必须和芯片进行三类信息的交互:

1.存储单元的地址(地址信息)  告诉存储器的位置

2.器件的选择,读或写的命令(控制信息)告诉需要做什么

3.读或写的数据(数据信息)  告诉拿什么数据做处理

10。电子计算机能处理、传输的信息都是电信号,电信号用导线传送,在计算机中专门有连接CPU和其它芯片的导线,总线

1.地址总线

2.数据总线

3.控制总线

可以看出总线的功能与上面cpu与芯片信息交互处理方式相一致

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

汇编语言学习笔记2的相关文章

小甲鱼零基础汇编语言学习笔记第六章之包含多个段的程序

在前面的几个章节中,我们的程序都是只有一个代码段,本章我们开始学习如何编写包含多个段的程序. 1.在代码段中使用数据 首先考虑这样一个问题,计算以下8个数据的和,结果存放在ax寄存器中: 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H 在前面的课程中,我们都是累加某些内存单元中的数据,并不关心数据本身,可现在我们要累加就是已经给定了数值的数据. 代码如下: 1 assume cs:codesg 2 codesg segment 3 dw 0123H

小甲鱼零基础汇编语言学习笔记第五章之[BX]和loop指令

这一章主要介绍什么是[BX]以及loop(循环)指令怎么使用,loop和[BX]又怎么样相结合,段前缀又是什么鬼,以及如何使用段前缀. 1.[BX]的概念 [BX]和[0]类似,[0]表示内存单元的偏移地址是0.要完整描述一个内存单元,需要两种信息:内存单元的地址,内存单元的长度(类型).[BX]同样也表示一个内存单元,它的偏移地址在bx中,比如指令:mov ax,[bx].这里我们以一个程序为例: 1 assume cs:codesg 2 codesg segment 3 start: mov

小甲鱼零基础汇编语言学习笔记第四章之第一个汇编程序

1.使用工具 代码编写:NotePad++,代码编译器:MASM 2.一个源程序从写出到执行的过程 第一步,使用文本编辑器,用汇编语言编写汇编源程序,这一步产生一个存储源程序的文本文件. 第二步,对源程序进行编译,连接.使用MASM.exe对源程序文件进行编译,产生目标文件,再使用LINK.exe对目标文件进行连接,生成可在操作系统中直接运行的可执行文件.可执行文件包括两个部分,程序(从源程序的汇编指令翻译过来的机器码)和数据(源程序中定义的数据):相关的描述信息 (程序有多大,要占多少内存空间

汇编语言学习笔记(8)——数据处理的基本问题

1.只有"bx.si.di. bp"四个寄存器可以用在[-]中来进行内存单元的寻址 2.这四个寄存器可以单个出现也可以以[by+zi]形式出现,其中y=x或p,z = s或d ,其他格式均为错误的. 3.当使用bp时,如果没有显性地给出段地址,则段地址默认在ss段寄存器中. 4.汇编语言中用三个概念来表达数据的位置: 立即数(idata): 直接包含在机器指令中的[数据](执行前在CPU的[指令缓冲器中]),在汇编指令中直接给出 寄存器 指令要处理的[数据]在[寄存器]中,在汇编指令中

汇编语言学习笔记(二)

六.选择结构 if-then结构 C语言版本 if(count == 10) { count --; i++; } MASM汇编 .if count==10 dec count inc i .endif cmp指令,该指令用于比较两个参数大小 cmp mem, imm 比较内存mem和立即数imm大小 cmp reg, imm 比较寄存器reg和立即数imm大小 cmp reg, mem 比较寄存器reg和内存mem大小 cmp mem, reg 比较内存mem和寄存器reg大小 cmp imm

汇编语言学习笔记(五)

十六.数组 数组的基本表示方法 numary sdword 2,5,7 numary数组中有三个元素,为sdword类型,分别为2,5,7 empary sdword ?, ?,? empary数组为sdword类型元素,未初始化. 如果数组元素很多可通过 zeroary sdword 100 dup(0) zeroary数组中有100个0 empary sdword 3 dup(?) empary 数组中有3个未初始化的sdword类型数据 mov eax, numary+8; 表示把数组nu

汇编语言学习笔记(三)

八.逻辑运算指令 数字在计算机中以二进制存储,每个位数字为0或者1,当两个二进制数字进行逻辑按位&,逻辑按位|,逻辑异或^操作, 可以采用汇编语言提供的逻辑运算指令and,or, xor,not等指令. and指令: C语言&操作,将0110&1101得出结果为0100 C语言代码为 if(flag & maskit) count++; 汇编语言高级指令可实现: mov eax, flag .if eax & maskit inc count .endif 不采用高

汇编语言学习笔记(六)

十八.字符串处理 前文介绍过字符串的处理,字符串是byte类型 的数组,现在实现一段代码,将字符串string1数据copy到字符串string2中 代码如下 .data string1 byte "Hello World!", 0 string2 byte 12 dup(?), 0 .code mov ecx, 12 mov ebx,0 .repeat mov al, string1[ebx] mov string2[ebx], al inc ebx .untilcxz 通过ecx递

汇编语言学习笔记(4)——第一个可执行程序

概念 1.一个汇编程序是由多个段组成的,所有将被计算机处理的信息:指令.数据.栈,被划分到了不同的段中.一个有意义的汇编程序中至少要有一个段.段的定义语法如下: 段名 segment -- 段名 ends 2.end:是汇编程序的结束标志 3.assume:将某一个段与某个段寄存器进行关联 4.一个程序结束后,将CPU的控制权交还给使他得以运行的程序,这个过程称为"程序返回" 5.程序编写到运行的过程: 编写源程序 -> 编译 -> 连接 (生成可执行文件)->加载-