王爽《汇编语言》第1章DOC版

合集下载

汇编语言-王爽-完美高清版视频教程

汇编语言-王爽-完美高清版视频教程

汇编语言》-王爽-完美高清版-零基础汇编语言入门书籍PDF格式

同时按ctrl+要下载的地址既可下载对应的视频

下载地址:/file/f61cb107c8

001第一章- 基础知识01

下载地址:/file/f6806f45b8

002第一章- 基础知识02

下载地址:/file/f6ec42d4d3

003第一章- 基础知识03

下载地址:/file/f6deb05ec4

004第一章-基础知识04

下载地址:/file/f6e51f6838

005第一章- 基础知识05

下载地址:/file/f66edaf8d3

006第二章- 寄存器(CPU工作原理)01

下载地址:/file/f6d07e07b9

007第二章- 寄存器(CPU工作原理)02

下载地址:/file/f6d7f585a8

008第二章- 寄存器(CPU工作原理)03

下载地址:/file/f639d8b3cf

009第二章- 寄存器(CPU工作原理)04

下载地址:/file/f6dcadbde6

010第二章- 寄存器(CPU工作原理)05

下载地址:/file/f6ea3f01c1

011第二章- 寄存器(CPU工作原理)06

下载地址:/file/f65b96a06f

012第二章- 寄存器(CPU工作原理)07

下载地址:/file/f682da085a

013第三章- 寄存器(内存访问)01

下载地址:/file/f6486e698

014第三章- 寄存器(内存访问)02

下载地址:/file/f6b7491d9f

015第三章- 寄存器(内存访问)03

下载地址:/file/f622b7f9a7

汇编语言-王爽-完美高清版视频教程

汇编语言-王爽-完美高清版视频教程

汇编语言》-王爽-完美高清版-零基础汇编语言入门书籍PDF格式

同时按ctrl+要下载的地址既可下载对应的视频

下载地址:/file/f61cb107c8

001第一章- 基础知识01

下载地址:/file/f6806f45b8

002第一章- 基础知识02

下载地址:/file/f6ec42d4d3

003第一章- 基础知识03

下载地址:/file/f6deb05ec4

004第一章-基础知识04

下载地址:/file/f6e51f6838

005第一章- 基础知识05

下载地址:/file/f66edaf8d3

006第二章- 寄存器(CPU工作原理)01

下载地址:/file/f6d07e07b9

007第二章- 寄存器(CPU工作原理)02

下载地址:/file/f6d7f585a8

008第二章- 寄存器(CPU工作原理)03

下载地址:/file/f639d8b3cf

009第二章- 寄存器(CPU工作原理)04

下载地址:/file/f6dcadbde6

010第二章- 寄存器(CPU工作原理)05

下载地址:/file/f6ea3f01c1

011第二章- 寄存器(CPU工作原理)06

下载地址:/file/f65b96a06f

012第二章- 寄存器(CPU工作原理)07

下载地址:/file/f682da085a

013第三章- 寄存器(内存访问)01

下载地址:/file/f6486e698

014第三章- 寄存器(内存访问)02

下载地址:/file/f6b7491d9f

015第三章- 寄存器(内存访问)03

下载地址:/file/f622b7f9a7

汇编语言第二版王爽完整答案(供参考)

汇编语言第二版王爽完整答案(供参考)

第1章基础知识

检测点1.1

(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13。

(2)1KB的存储器有1024个存储单元。存储单元的编号从0到1023。

(3)1KB的存储器可以存储1024*8个bit,1024个Byte。

(4)1GB、1MB、1KB分别是2^30、2^20、2^10 Byte。(n^m的意思是n的m次幂)

(5)8080、8088、80286、80386的地址总线宽度分别是16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16(MB)、4(GB)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。

(7)从内存中读取1024字节的数据,8086至少要读512次、80386至少要读256次。

(8)在存储器中,数据和程序以二进制形式存放。

第2章寄存器答案

检测点2.1

(1) 写出每条汇编指令执行后相关寄存器中的值。

mov ax,62627 AX=F4A3H

mov ah,31H AX=31A3H

mov al,23H AX=3123H

add ax,ax AX=6246H

mov bx,826CH BX=826CH

mov cx,ax CX=6246H

mov ax,bx AX=826CH

add ax,bx AX=04D8H

mov al,bh AX=0482H

mov ah,bl AX=6C82H

add ah,ah AX=D882H

王爽汇编语言答案(1-4)

王爽汇编语言答案(1-4)

王爽汇编语⾔答案(1-4)

王爽汇编语⾔答案(1-4章)

检测点

chapter1

检测点1.1

(1)1个CPU的寻址能⼒为8KB,那么它的地址总线的宽度为13。

(2)1KB的存储器有个存储单元。存储单元的编号从0000到1023。

(3)1KB的存储器可以存储个8192bit,1024个Byte。

(4)1GB、1MB、1KB分别是2^30 , 2^20 , 2^10Byte。

(5)8080、8088、80286、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能⼒分别为:64(KB)、1(MB)、16(MB)、4(GB)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根则它们⼀次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。

(7)从内存中读取1024字节的数据,8086⾄少要读512次,80386⾄少要读256次。

(8)在存储器中,数据和程序以形式⼆进制存放。

chapter2

检测点2.1

1.写出每条汇编指令执⾏后相关寄存器中的值。

指令寄存器

mov ax, 62627AX = F4A3H

mov ah, 31H AX = 31A3H

mov al, 23H AX = 3123H

add ax, ax AX = 6246H

mov bx, 826CH BX = 826CH

mov cx, ax CX = 6246H

mov ax, bx AX = 826CH

add ax, bx AX = 04D8H

汇编语言王爽第二版课后答案培训资料

汇编语言王爽第二版课后答案培训资料

汇编语言王爽第二版

课后答案

第一章基础知识

检测点1.1(第8页)

----------------------

(1) 13

(2) 1024,0,1023

(3) 8192,1024

(4) 2^30,2^20,2^10

(5) 64,1,16,4

(6) 1,1,2,2,4

(7) 512,256

(8) 二进制

注意:

1.第4题中的符号'^'指求幂运算(如: 2^30指2的30次方)

第二章寄存器(CPU工作原理)

检测点2.1(第18页)

----------------------

(1)写出每条汇编指令执行后相关寄存器中的值。第一空:F4A3H

第二空:31A3H

第三空:3123H

第四空:6246H

第五空:826CH

第六空:6246H

第七空:826CH

第八空:04D8H

第九空:0482H

第十空:6C82H

第十一空:D882H

第十二空:D888H

第十三空:D810H

第十四空:6246H

(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。

解答如下:

mov ax,2

add ax,ax

add ax,ax

add ax,ax

检测点2.2(第23页)

----------------------

(1)00010H,1000FH

(2)1001H,2000H

第2题说明:

因为段的起始地址要为16的倍数。所以当段地址小于1001H或大于2000H时CPU都无法寻到。检测点2.3(第33页)

----------------------

答:CPU修改了4次IP的值。

情况如下:

第1次:执行完mov ax,bx后

汇编语言(王爽)

汇编语言(王爽)

19
• 小结 • 检测点1.1
20
十一、内存地址空间(概述)
一个CPU可以寻到的内存单元的范围称为 该CPU的内存地址空间。 例:8086CPU的地址总线为20根,所以其内存 地址空间为00000H—FFFFFH,共有1MB。
十二、主板 十三、接口卡
21
十四、各类存储器芯片
• 随机存储器(RAM) 用于存放供CPU使用的绝大部分程序和数据。 • 装有BIOS的只读存储器(ROM) • 接口卡上的RAM
指针寄存器
变址寄存器
源变址 目的变址
25
16位寄存器
• 寄存器组
控制寄存器
IP PSW CS DS SS ES
指令指针 状态标志
代码段
数据段 堆栈段 附加段
段寄存器
提 供 相 应 的 段 地 址。
26
一、通用寄存器
• 8086CPU的内部寄存器都是16位。 • 将AX、BX、CX、DX 四个寄存器称为通用寄 存器。 MOV AX,18 • 通用寄存器可分为两个独立的 8位寄存器来用。 AX寄存器的逻辑结构
第9章 第10章 第11章 第12章 第13章 第14章 第15章 第16章
转移指令的原理 call和ret指令 标志寄存器 内中断 int指令 端口 外中断 直接定址表
3
本课程的内容与要求
1、地位

汇编语言王爽基础知识

汇编语言王爽基础知识
本课件由汇编网(www.asmedu.net)制作提供

1.1 机器语言

S = 768 + 12288 - 1280 机器码: 101100000000000000000011 000001010000000000110000 001011010000000000000101


假如将程序错写成以下这样,请找处错误: 101100000000000000000011 000001010000000000110000 000101101000000000000101
汇编语言王爽基础知识
第1章 基础知识





1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
机器语言 汇编语言的产生 汇编语言的组成 存储器 指令和数据 存储单元 CPU对存储器的读写 地址总线
1. 9 数据总线 1.10 控制总线 1.11 内存地址空间(概述) 1.12 主板 1.13 接口卡 1.14 各类存储器芯片 1.15 内存地址空间
本课件由汇编网(www.asmedu.net)制作提供
1.1 机器语言

在显示器上输出“welcome to masm”。 机器码
看到这样的程序,你会有什么感想? 如果程序里有一个“ 1 ”被误写为 “ 0 ”,又如何去查找呢?

汇编语言-王爽

汇编语言-王爽

汇编语⾔-王爽

前⾔

学习汇编的两个最根本的⽬的:充分获得底层编程的体验,深刻理解机器运⾏程序的机理。

任何不以循序渐进的⽅式进⾏的学习,都将出现盲⽬探索和不成系统的情况,最终学习到的也⼤都是相对零散的知识,并不能建⽴起⼀个系统的知识结构。⾮循序渐进的学习,也达不到循序渐进学习所能达到的深度,因为后者是步步深⼊的,每⼀步都以前⼀步为基础

必须遵守的原则:

①没有通过监测点不要向下学习

②没有完成当前的实验不要向下学习

③每⼀个实验都是后续内容的基础,实验的任务必须独⽴完成

④本书的教学重⼼是:通过学习关键指令来深⼊理解机器⼯作的基本原理,培养底层编程意识和思想

我们必须通过⼀定的编程实践,体验⼀个裸机的环境,在⼀个没有操作系统的环境中直接对硬件编程

第1章基础知识

汇编语⾔是直接在硬件之上⼯作的编程语⾔

机器语⾔/机器指令集是机器指令的集合

寄存器是CPU中可以存储数据的器件

编译器能够将汇编指令转换成机器指令的翻译程序

汇编语⾔由以下3类指令组成:

1.汇编指令:机器码的助记符,由对应的机器码(核⼼) <汇编指令是机器指令便于记忆的书写格式>

2.伪指令:没有对应的机器码,由编译器执⾏,计算机并不执⾏

3.其他符号:+ - * /

要想让⼀个CPU⼯作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是我们平时所说的内存

CPU要从内存中读数据,⾸先要指定存储单元的地址,CPU在读写数据时还要指明。它要对哪个器件进⾏哪种操作

所以CPU要想进⾏数据的读写,必须和外部器件进⾏下⾯3类信息的交互->

王爽汇编笔记

王爽汇编笔记

王爽汇编笔记

第一章基础知识

本章概述:

1.汇编语言基本上是直接在硬件上工作的编程语言,需要了解硬件系统才能更好的应用汇编编程。

2.最终运行程序的是CPU,我们用汇编语言编程时,必须要从CPU的角度考虑问题。

一、机器语言

1.机器语言是机器指令的集合,它是机器可以正确执行的命令,是一列二进制数字。CPU将之转变为

一列高低电平,以便计算机的电子器件受到驱动,进行计算。

2.每一种微处理器,由于硬件设计和内部结构不同,就需要用不同的电平脉冲来控制,使它工作。所

以每一种微处理器都有自己的机器指令集,也就是机器语言。

二、汇编语言的产生

1.机器语言使用上的不便造就了汇编语言的产生。

2.汇编语言是机器指令便于记忆的书写格式。

3.汇编语言的编译器把汇编语言编译成机器指令,由计算机最终执行。

三、汇编语言的组成

1.汇编指令:机器码的助记符,有对应的机器码,汇编语言的核心,决定汇编语言的特性。

2.伪指令:没有对应的机器码,由编译器执行,计算机不执行。

3.其他符号:如+、—、*、/等,有编译器识别,没有对应的机器码。

四、存储器

1.内存是给CPU提供数据和指令的部件,它是程序运行的基本资源。

2.磁盘上的数据和程序需要先读到内存中才可以被CPU使用。

五、指令和数据

1.指令和数据是应用上的概念。

2.在内存和磁盘上,指令好数据没有任何区别,都是二进制信息。

3.在CPU运行时才区分数据和信息。

六、存储单元

1.存储一个bit信息的硬件存储单位是存储元。

2.一般是8个存储元组成一个存储单元。

3.若干存储单元再组成存储器。

七、CPU对存储器的读写

汇编语言(王爽)Word版(1)

汇编语言(王爽)Word版(1)

汇编语言(王爽)Word版(1)

第1章基础知识

汇编语言是直接在硬件之上工作的编程语言,我们首先要了解硬件系统的结构,才能

有效地应用汇编语言对其编程。在本章中,我们对硬件系统结构的问题进行一部分的探

讨,以使后续的课程可在一个好的基础上进行。当课程进行到需要补充新的基础知识(关

于编程结构或其他的)的时候,再对相关的基础知识进行介绍和探讨。我们的原则是,以

后用到的知识,以后再说。

在汇编课程中我们不对硬件系统进行全面和深入的研究,这不在课程的范围之内。关

于PC机及CPU物理结构和编程结构的全面研究,在《微机原理与接口》中进行;对于

计算机一般的结构、功能、性能的研究在一门称为《组成原理》的理论层次更高的课程中

进行。汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活地控制系

统进行工作。

1.1 机器语言

说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指

令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数

字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。

上面所说的计算机指的是可以执行机器指令,进行运算的机器。这是早期计算机的概

念。现在,在我们常用的PC机中,有一个芯片来完成上面所说的计算机的功能。这个芯

片就是我们常说的CPU(Central Processing Unit,中央处理单元),CPU是一种微处理器。以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组

成的计算机系统,比如我们最常见的PC机。

汇编语言笔记王爽教程

汇编语言笔记王爽教程

汇编语⾔笔记王爽教程

汇编语⾔笔记王爽教程

第⼀章基础知识

1. 汇编指令是机器指令的助记符,同机器指令⼀⼀对应。

2. 每⼀种CPU都有⾃⼰的汇编指令集。

汇编语⾔发展⾄今,由以下三类指令组成:

1汇编指令:机器码的助记符,有对应的机器码;

2伪指令:没有对应的机器码,由编译器执⾏,计算机并不执⾏;

3其他符号:如:+,--,*,/等,由编译器识别,没有对应的机器码。

3. CPU可以直接使⽤的信息在存储器中存放。

4. 在存储器中指令和数据没有任何区别,都是⼆进制信息。

5. 存储单元从零开始顺序编号。

6. ⼀个存储单元可以存储8个bit(⽤作单位写为“b”),即8位⼆进制数

7. 1B=8b 1KB=1024b 1MB=1024KB 1GB=1024MB 1TB=1024GB

8. 每⼀个CPU芯⽚都有许多管脚,这些管脚和总线相连,也可以说这些管脚引出总线。⼀个CPU可以引出总线的宽度标志了这个CPU的不同⽅⾯的性能:

V地址总线的宽度决定了CPU的寻址能⼒;

Vv数据总线的宽度决定了CPU与其他器件进⾏数据传送时的

⼀次数据传送量;

Vvv控制总线的宽度决定了CPU对系统中其他器件的控制能⼒;

9. 在每⼀台PC机中,都有⼀个主板,主板上有核⼼器件和⼀些主要器件,这些器件通过总线相连。这些器件有:CPU,存储器,外围芯⽚组,扩展插槽等。扩展插槽上⼀般插有RAM内存条和各类接⼝卡。

10. CPU对外部设备都不能直接控制,直接控制这些设备进⾏⼯作的是插在扩展插槽上的接⼝卡。扩展插槽通过总线和CPU相连,所以接⼝卡液通过总线同CPU相连。即CPU通过总线向接⼝卡发送命令,接⼝卡根据CPU的命令控制外设进⾏⼯作。

王爽,汇编语言总复习

王爽,汇编语言总复习

按转移条件分:无条件和有条件转移 按转移范围分:段内转移和段间转移 按转移地址(寻址方式)分:直接和间接
控制转移指令
1、段内转移
(1)直接寻址
JMP
标号地址
JMP SHORT/NEAR PTR
(2)间接寻址
标号地址
;CS寄存器内容不变, IP ← IP+标号地址的偏移地址;
JMP WORD PTR reg16/mem16
PLeabharlann Baidu85
重点例题
1、大小写转换 : ( P143 P152 P160 P202 2、代码复制/传送: ( P120 P121 ; P232 P233
装)
P205 P254 ) 及中断子程序的安
3、查找: P184 练习 4、统计: P228 -229习题及练习 5、显示/输出: 实验9 实验10及中断子程序
《汇编语言》
复习
一、基础知识(第1章) 二、寄存器(第2、3章) 三、程序的基本框构(第4、6章) 四、数据的寻址方式(第5、7、8章) 五、转移指令 (第9、10、11、12、13、14、15、17章)
无条件转移、条件转移、循环、子程序、中断
六、用查找法的编程技巧 (第16章)
一、基础知识(第1章)
计算机硬件基础知识 初步认识汇编语言 计算机内部数据的表
内存地址的表示

汇编语言(王爽)

汇编语言(王爽)
4
2、内容:各章主要知识点 目的:掌握汇编语言的编辑、结构,充分获得底层 编程的体验,深刻理解机器运行程序的机理。为 相关课程的深入学习打好基础。 3、要求: • 不缺课、不迟到,认真听课。 • 独立完成作业、实验及各章节检测点。 • 认真思考每章的问题和分析,自觉学习附注内容。 • 循序渐进按每章的(1)知识点、(2)检测点、 (3)问题和分析、(4)实验。四个步骤认真学 习,遇到困难及时解决。
15
• CPU传送的三种信息
存储单元的地址 (地址信息) 选择芯片、读或写的命令 (控制信息) 读或写内存的数据内容 (数据信息)
地址总线
3
C P U 数据总线 08 控制总线
读内存命令→
Fra Baidu bibliotek
12 3B 9C
0 机器码: 1 2
101000000000001100000000
08
31
3 汇编指令 4
23
5
4、考核: 5、温故知新: 6、推荐几个网站: • http://www.x86asm.com • http://www.aogosoft.com 7、教学进度安排:
6
第1章 基础知识
• • • • • • • 机器语言 汇编语言的产生和组成 存储器 指令和数据 存储单元 CPU对存储器的读写 三总线结构
10
•数据传送指令:

汇编语言王爽检测点答案

汇编语言王爽检测点答案
实验四:[bx]和loop的使用
(1)
assume cs:code
code segment
mov ax,0
mov ds,ax
mov cx,64
mov bx,200h
s:
mov ds:[bx],ax
inc bx
inc ax
loop s
mov ax,4c00H
int 21h
code ends
End
(2)如上题我一不小心写出来就是九条指令了!!!呵呵!!
inc ax
inc bx
loop again2
mov ax,4c00h
int 21h
code ends
end start
(6)
;*****************************************************
;编写程序,用push指令将a段中的word数据,逆序存储到b段中
6622H
0000
jmp 0ff0:0100
1000h
0000
1000H
6622H
0000
mov ax,2000h
1000H
0003
1000H
2000H
0000
mov ds,ax
1000H
0005
2000H
2000H
0000

汇编语言第二版(王爽)知识总结

汇编语言第二版(王爽)知识总结

汇编语⾔第⼆版(王爽)知识总结

汇编语⾔(第⼆版)知识总结

第⼀章基础知识

1. 存储单元为1Byte ,即字节。

2. 微⼩信息单位为1bit ,其中1Byte=8bit 。

3. Cpu 的寻址能⼒

●对于地址总线来说,N 根地址总线,寻址能⼒为2N

B 。●对于数据总线来说,N 根地址总线,寻址能⼒为N/8 B 。 4. 8086cpu 的P

C 机内存地址空间分配如图:

00000

存储芯⽚从读写属性来看: RAM ROM

9FFFF (随机存储器) (只读存储器)

A0000 主板,⽹卡,显卡上的BIOS 装在ROM 中,不能写⼊操作; BFFFF

运算器(信息处理)

C0000 CPU 控制器(控制各种器件⼯作) FFFFF 寄存器(信息存储)

第2章寄存器

AX (accumulate ),BX (base ),CX (count ),DX (data ); SI ,DI ;

5. 8086CPU 有14个寄存器(指针存储器)SP ,BP ,IP ;(段存储器)CS ,SS ,DS ,ES ;(标志存储器)PSW ;

7.字的概念:⼀个字(word )是由两个字节(Byte )构成的,其中含有⾼位字节和低位字节; 8.对于实验中溢出的数据,由PSW 寄存器保存溢出值; 9.以下错误指令是常出现的:

mov ax,bl (不允许8位和16位寄存器之间传送数据) mov bh,ax (同上)

mov al,20000 (8位寄存器最⼤的存放值为255)

mov al,100H (不允许将⾼于8位的数据加到8位寄存器之中)

汇编语言(王爽)Word版(1)

汇编语言(王爽)Word版(1)

汇编语言(王爽)Word版(1)

第1章基础知识

汇编语言是直接在硬件之上工作的编程语言,我们首先要了解硬件系统的结构,才能

有效地应用汇编语言对其编程。在本章中,我们对硬件系统结构的问题进行一部分的探

讨,以使后续的课程可在一个好的基础上进行。当课程进行到需要补充新的基础知识(关

于编程结构或其他的)的时候,再对相关的基础知识进行介绍和探讨。我们的原则是,以

后用到的知识,以后再说。

在汇编课程中我们不对硬件系统进行全面和深入的研究,这不在课程的范围之内。关

于PC机及CPU物理结构和编程结构的全面研究,在《微机原理与接口》中进行;对于

计算机一般的结构、功能、性能的研究在一门称为《组成原理》的理论层次更高的课程中

进行。汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活地控制系

统进行工作。

1.1 机器语言

说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指

令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数

字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。

上面所说的计算机指的是可以执行机器指令,进行运算的机器。这是早期计算机的概

念。现在,在我们常用的PC机中,有一个芯片来完成上面所说的计算机的功能。这个芯

片就是我们常说的CPU(Central Processing Unit,中央处理单元),CPU是一种微处理器。以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组

成的计算机系统,比如我们最常见的PC机。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章基础知识

汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效地应用汇编语言对其编程。在本章中,对硬件系统结构的问题进行一部分的探讨,以使后续的课程可在一个好的基础上进行。当课程进行到需要补充新的基础知识(关于编程结构或其他的)时候,再对相关的基础知识进行介绍和探讨。本书的原则是,以后用到的知识,以后再说。

在汇编课程中不对硬件系统进行全面和深入的研究,因为这不在本课程的范围之内。关于PC机及CPU物理结构和编程结构的全面研究,在《微机原理与接口》中进行;对于计算机一般的结构、功能、性能的研究在一门称为《组成原理》的理论层次更高的课程中进行。汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活地控制系统进行工作。

1.1 机器语言

说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。

上面所说的计算机指的是可以执行机器指令,进行运算的机器。这是早期计算机的概念。现在,在常用的PC机中,有一个芯片来完成上面所说的计算机的功能。这个芯片就是我们常说的CPU(Central Processing Unit,中央处理单元),CPU是一种微处理器。以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统,比如我们最常见的PC机。

每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自已的机器指令集,也就是机器语言。

早期的程序设计均使用机器语言。程序员们将用0、1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。

应用8086CPU完成运算s=768+12288-1280,机器码如下:

101100000000000000000011

000001010000000000110000

001011010000000000000101

假如将程序错写成以下这样,请读者找出错误。

101100000000000000000011

000001010000000000110000

000101101000000000000101

汇编语言

要书写和阅读机器码程序不是一件简单的工作,要记住所有抽象的二进制码。上面只是一个非常简单的小程序,就暴露了机器码的晦涩难懂和不易查错。写如此小的一个程序尚且如此,实际上一个有用的程序至少要有几十行机器码,那么,情况将怎么样呢?

在显示器上输出“welcome to masm”,机器码如下:

00011110

101110000000000000000000

01010000

101110001100011000001111

1000111011011000

1011010000000110

1011000000000000

1011011100000111

101110010000000000000000

1011011000011000

1011001001001111

1100110100010000

1011010000000010

1011011100000000

1011011000000000

1011001000000000

1100110100010000

1011010000001001

10001101000101100010101000000000

1100110100100001

1011010000001010

10001101000101100011000100000000

1100110100100001

1011010000000110

1011000000010100

1011011100011001

1011010100001011

1011000100010011

1011011000001101

1011001000111100

1100110100010000

1101010000000010

1101011100000000

1101000000001100

1101001000010100

1100110100010000

1011010000001001

10001101000101100000000000000000

1100110100100001

11001011

看到这样的程序,读者会有什么感想?如果程序里有一个“1”被误写为“0”,又如何去查找呢?

1.2 汇编语言的产生

早期的程序员们很快就发现了使用机器语言带来的麻烦,它是如此难于辨别和记忆,给整个产业的发展带来了障碍。于是汇编语言产生了。

第1章基础知识

汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。

例如:机器指令1000100111011000表示把寄存器BX的内容送到AX中。汇编指令则写成mov ax,bx。这样的写法与人类语言接近,便于阅读和记忆。

操作:寄存器BX的内容送到AX中

机器指令:1000100111011000

汇编指令:mov ax,bx

(寄存器,简单地讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。AX 是其中一个寄存器的代号,BX是另一个寄存器的代号。更详细的内容我们在以后的课程中将会讲到。)

此后,程序员们就用汇编指令编写源程序。可是,计算机能读懂的只有机器指令,那么如何让计算机执行程序员用汇编指令编写的程序呢?这时,就需要有一个能够将汇编指令转换成机器指令的翻译程序,这样的程序被称为编译器。程序员用汇编语言写出源程序,再用汇编编译器将其编译为机器码,由计算机最终执行。图1.1描述了这个工作过程。

程序员

汇编指令

mov ax, bx

……

……

编译器

1000100111011000

……

……

计算机

机器码

图1.1用汇编语言编写程序的工作过程

1.3 汇编语言的组成

汇编语言发展至今,由以下3类指令组成。

●汇编指令:机器码的助记符,有对应的机器码。

●伪指令:没有对应的机器码,由编译器执行,计算机并不执行。

●其他符号:如:+、-、*、/ 等,由编译器识别,没有对应的机器码。

汇编语言的核心是汇编指令,它决定了汇编语言的特性。

1.4 存储器

CPU是计算机的核心部件,它控制整个计算机的运作并进行运算。要想让一个CPU 工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是平时所说的内存。在一台PC机中内存的作用仅次于CPU。离开了内存,性能再好的CPU也无法工作。这就像再聪明的大脑,没有了记忆也无法进行思考。磁盘不同于内存,磁盘上的数据或程序如

相关文档
最新文档