文档视界 最新最全的文档下载
当前位置:文档视界 › 汇编语言复习重点总结版

汇编语言复习重点总结版

汇编语言复习重点总结版
汇编语言复习重点总结版

1.通用数据传送指令

MOV——传送指令

指令格式:MOV DST,SRC ;(DST)←(SRC)。DST表示目的操作数, SRC表示源操作数

说明:①.DST为除CS外的各寄存器寻址方式或任意存储器寻址方式。SRC为任意数据寻址方式。

②.DST、SRC不能同时为存储器寻址方式,也不能同时为段寄存器寻址方

式,而且在DST为段寄存器时,SRC不能为立即数。

③.MOV指令不影响标志位。

2.地址传送指令

(1).LEA——有效地址(EA)送寄存器指令

指令格式:LEA REG,SRC ;(REG)←SRC

说明:①.指令把源操作数(只能是存储器寻址方式)指定的有效地址送到指令指定的16位或32位寄存器(REG)中(但不能是段寄存器)。

②.LEA指令不影响标志位。

3.加法指令

(1).ADD——加法指令

指令格式:ADD DST,SRC ;(DST)←(DST)+( SRC)

4.减法指令

(1).SUB——减法指令

指令格式:SUB DST,SRC ;(DST)←(DST) - (SRC)

(2).SBB——带借位减法指令

指令格式:SBB DST,SRC ;(DST)←(DST) - (SRC) - CF

5.除法指令

(1).DIV——无符号数除法指令

指令格式:DIV SRC ;字节操作:(AL)←(AX)/(SRC),(AH)←(AX)%(SRC)

字操作:(AX)←(DX,AX)/(SRC),(DX)←

(DX,AX)%(SRC)

双字操作:(EAX)←(EDX,EAX)/(SRC),(EDX)←

(EDX,EAX)%(SRC)

6.逻辑运算指令:可以对双字、字或字节执行按位的逻辑运算。

(1).AND——逻辑与指令

指令格式:AND DST,SRC ;(DST)←(DST)∧(SRC)

(2).OR——逻辑或指令

指令格式:OR DST,SRC ;(DST)←(DST)∨(SRC)

(3).XOR——逻辑异或指令

指令格式:XOR DST,SRC ;(DST)←(DST)⊕(SRC)

(4).PUSH——进栈指令

指令格式:PUSH SRC;16位指令:(SP)←(SP) –2 ((SP)+1,(SP))←(SRC)

32位指令:(ESP)←(ESP) –4 ((ESP)+3, (ESP)+2, (ESP)+1,

(ESP))←(SRC)

说明:①.堆栈:计算机开辟的以“后进先出”方式工作的存储区。它必须存在于

堆栈段中,只有一个出入口,所以只有一个堆栈指针SP 或ESP 。SP 或

ESP 的内容在任何时候都指向当前的栈顶。

②.8086中的SRC 不能为立即数寻址方式。286及其后继机型可用立即数

寻址方式。

③.PUSH 指令不影响标志位。

(5). POPF/POPFD ——标志出栈指令

指令格式:POPF ;(FLAGS)←((SP)+1,(SP)),(SP)←(SP)+2

POPFD ;(EFLAGS)←((ESP)+3, (ESP)+2, (ESP)+1, (ESP)),

(ESP)←(ESP) -4

说 明:这组指令中LAHF 、PUSHF/PUSHFD 不影响标志位。但POPFD 指令不影

响VM ,RF ,IOPL ,VIF 和VIP 的值。

7. 移位指令

(1). 移位指令

1). SHL ——逻辑左移指令

指令格式:SHL OPR ,CNT ; 2). SAL ——算术左移指令

指令格式:SAL OPR ,CNT ;同上

3). SHR ——逻辑右移指令 指令格式:SHR OPR ,CNT ;

4). SAR ——算术右移指令 指令格式:SAR OPR ,CNT ;

(2). 循环移位指令

1). ROR ——循环右移指令 指令格式:ROR OPR ,CNT ;

2). RCR ——带进位位循环右移指令 指令格式:RCR OPR ,CNT ;

说 明:①.OPR 为除立即数以外的任意寻址方式。移位次数由CNT 决定,CNT=1

只移位1次;若移位次数超过1次,在8086中则CNT 必须用CL 代替。

而在其他机型中也可用8位立即数指定范围从1~31的移位次数。

②.CF 位已在指令中给出其影响情况。OF 位只有在CNT=1时有效,一次

移位前后的最高有效位(符号位)发生变化则OF=1,否则OF=0。循环指

令不影响其它条件。移位指令由结果影响SF 、ZF 、PF ,而AF 无定义。

8. 循环指令

(1). LOOP ——循环指令

指令格式:LOOP OPR

测试条件:(Count Reg)≠0

1). JZ (或JE)——结果为零(或相等)则转移

指令格式:JZ (或JE) OPR

测试条件:ZF=1

(2). TEST ——测试指令

指令格式:TEST OPR1,OPR2 ;(OPR1)∧(OPR2)

说 明:①.DST 、OPR 、OPR1不允许使用立即数寻址方式。

(3). CMP ——比较指令

指令格式:CMP OPR1,OPR2 ;(OPR1) - (OPR2),运算后根据结果影响标志 CF

OPR 0 CF OPR 0 CF OPR CF OPR CF OPR

说明:①.以上指令除DEC不影响CF标志外,它们都影响条件标志位。

②.OF是有符号数的溢出,CF是无符号数的溢出。但CF可作为多位运算

借位标志。

1.WORD PTR:取字长地址值操作符。

(4).INT——中断调用指令

指令格式:INT TYPE

或INT ;TYPE=3时,缺省

执行操作:Push (FLAGS)

IF←0

TF←0

AC←0

Push (CS)

Push (IP)

(IP)←(TYPE*4) (每个中断向量占4个字节)

(CS)←(TYPE*4+2)

说明:①.其中TYPE为类型号,它可以是常数或常数表达式,其值需在0~255

范围内。

②.类型0的中断称为除数为0中断,由CPU自动产生,不能用中断指

令调用。

③.类型1的中断称为单步中断,CPU进入单步中断的依据为(TF)=1。

不能用中断指令来调用。单步中断由调试程序DEBUG使用。

④.类型2的中断称为非屏蔽中断,属硬件中断,紧急情况使用,不许

用中断指令来调用。

⑤.类型3的中断称为断点中断。用在调试程序中。INT又称为断点中

断指令,它是单字节指令。与其他INT TYPE不同,是双字节指令。

⑥.类型4的中断称为溢出中断。有专门的溢出中断调用指令INTO。无

INT 4指令。见下面。

1.1.2段定义伪操作

1.完整的段定义伪操作

(1).SEGMENT/ENDS——段定义伪操作:此对伪操作可以将汇编语言源程序分成几个段,

通常为数据段、堆栈段、附加段和代码段。

伪操作格式:segname SEGMENT [align_type][combine_type][use_type] [‘class’] (2).ASSUME——段指定伪操作:告诉汇编程序,段和段寄存器的对应关系。

伪操作格式:ASSUME 分配(assignment),…,assignment

说明:其中assignment说明分配情况,其格式为:

段寄存器名(segment register name):段名字(segment name)[,段寄存器名:段名

字[,……]]

ASSUME NOTHING则可取消前面由ASSUME所指定的段寄存器。

2.助记符(Mnemonic):说明所用伪操作的助记符名称同时也说明所定义的数据类型。通常为下面6种。

(1).DB(Define Byte):定义字节伪操作,其后的每个操作数都占有一个字节(8位)。

(2).DW(Define Word):定义字伪操作,其后的每个操作数都占有一个字(16位)。

(3).DD(Define Double Word):定义双字伪操作,其后的每个操作数都占有一个双字(32位)。

(4).重复操作符DUP:用来指定某个(或某些)操作数重复的次数(还可以嵌套)。形式为:

repeat_count DUP (初值[,初值…]) ;repeat_count为重复的次数

(5)“?”操作数:仅给变量保留相应的存储空间,而不赋给变量初值。

3.EQU——表达式赋值伪操作:用来对一个名字进行赋值。但不能对一个已赋值的名字重新赋值。

伪操作格式:表达式名字EQU 表达式;表达式可以为常数或者数据的地址说明:PURGE语句:用来解除对某一个名字的赋值。以后此名字才可由EQU 重新赋值。

伪操作格式:PURGE 原名字;原名字,即前面已赋过值的名字

4.= ——表达式赋值伪操作:“=”(等号)伪操作的功能与EQU伪操作基本相同,主要区别在于它可以对同一个名字重新赋值。

伪操作格式:名字= 表达式;表达式可以为常数或者数据的地址(1).INC——加1指令

指令格式:INC OPR ;(OPR)←(OPR)+1

说明:①.以上指令除INC不影响CF标志外,它们都影响条件标志位。

②.OF是有符号数的溢出,CF是无符号数的溢出。但CF可作为多位运算

的进位标志。

(2).PTR属性操作符:指定操作数的类型属性为BYTE、WORD、DWORD、FWORD、

QWORD或TBYTE类型。

操作符格式:类型(Type) PTR 变量(Variable)±常数表达式(Constant expression) SIZE:回送分配给变量的字节数,它是LENGTH与TYPE值的乘积。

OFFSET:回送变量或者标号的偏移地址值。

物理地址的求法

5.逻辑地址

(1).在实模式下逻辑地址即为段地址:偏移地址。物理地址= 段地址×10H + 偏移地址

(2).在保护模式下逻辑地址则由选择器和偏移地址两部分组成。选择器存放在段寄存器

中,但它不能直接表示段基地址,而由操作系统通过一定的方法取得段基地址,再和偏移地址相加,从而求得所选存储单元的物理地址。

1.1.3存储单元的地址和内容:

1.字节:每8位二进制数组成一个字节(Byte)。在存储器里是以字节为单位存储信息。

2.字:16位二进制数(2个字节)组成一个字。分成低位字节和高位字节存储。

3.存储单元的地址:为了正确的存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址。以字节为单位给存储单元按二进制从0开始顺序进行的编号。它是无符号的二进制整数,书写格式为十六进制数。

(1).选址能力:若干位(如x位)二进制数(相当于若干根地址线)所能选择的最大存储单元的

地址数(2x)。

(2).1K=1024=210。所以16位二进制数的选址能力为216=64KB。用0~FFFFH表示。IBM

PC机(8086/8088 CPU)的选址能力为220=1MB。

4.存储单元的内容:该存储单元存放的信息。存储器的内容取之不尽。

(1).字节的存储:直接存入某存储单元。

(2).字的存储:一个字存入存储器要占用两个单元。存放时,低位字节存入低地址单元,

高位字节存入高位地址单元。字单元的地址用它的低地址表示,应尽量为偶数地址。

(3).如果用X表示某存储单元的地址,则X单元的内容可以表示为(X);假如X单元中存

放着Y,而Y又是一个地址,则可用(Y)=((X))来表示Y单元的内容。

(4).存储器的内容取之不尽。

1.1.4实模式存储器寻址

实模式就是为8086/8088而设计的工作方式,实模式下允许的最大寻址空间为1MB。它要解决在16位字长的机器里怎么提供20位地址的问题,而解决的办法是采用存储器地址分段的方法。

1.存储器地址的分段

(1).段:程序员在编制程序时要把存储器划分成段,在每个段内地址空间是线性增长的。

段的最大长度为64KB,以便能用16位二进制数表示段内地址。

1).小段:从0地址开始,每16字节为一小段。小段的首地址用16进制数表示时其最

低位为0。

2).段的起始地址:段不能起始于任意地址,而必须从任一小段(paragraph)的首地址开

始。

(2).物理地址、段地址、偏移地址

1).物理地址(PA):在1MB的存储器里,每一个存储单元都有一个唯一的20位地址,

称为该存储单元的物理地址(20位)。20位物理地址由16位段地址和16位偏移地

址组成。

2).段地址:段起始地址的高16位值(16位),低4位固定为0被省去。

3).偏移地址(偏移量EA):指在段内相对于段起始地址的偏移值(16位)。

4).物理地址= 段地址×10H + 偏移地址。用段地址:偏移地址表示。

2.段寄存器:在8086~80286中,有4个专门存放段地址的寄存器。

(1).代码段CS:存放当前正在运行的程序。

(2).数据段DS:存放当前运行程序所用的数据。

(3).堆栈段SS:定义堆栈的所在区域。

(4).附加段ES:附加的数据段。在80386及其后又增加了FS和GS两个附加数据段寄存

器。

3.逻辑地址

(1).在实模式下逻辑地址即为段地址:偏移地址。物理地址= 段地址×10H + 偏移地址

(2).在保护模式下逻辑地址则由选择器和偏移地址两部分组成。选择器存放在段寄存器

中,但它不能直接表示段基地址,而由操作系统通过一定的方法取得段基地址,再和偏移地址相加,从而求得所选存储单元的物理地址。

1.2I/O设备的数据传送方式

1.2.1CPU与外设

1.CPU和外部设备的连接:通过硬件接口或控制器相连。

2.CPU利用输入/输出指令(IN/OUT)与外部设备交换信息。这些信息有以下三种:

(1).控制信息:CPU输出到I/O接口,告诉接口和设备要做什么工作。

(2).状态信息:CPU从I/O接口输入,表示I/O设备当前的状态。

(3).数据信息:双向传输,是I/O设备和CPU真正要交换的信息。

1.2.2直接存储器存取DMA方式

1.输入/输出的传送方式

(1).程序直接控制I/O方式:CPU通过执行程序不断读取并测试外设的状态,如果外设处

于准备好状态(输入设备)或者空闲状态(输出设备),则CPU执行输入指令或输出指令与外设交换信息。此为查询式传送方式。也可用无条件传送方式直接与外设交换信息。

(2).中断传送方式:利用中断技术对输入/输出进行处理的方式。

(3).DMA方式:直接存储器存取方式(或称为成组数据传送方式)。

(4).通道控制方式:利用I/O协处理器的传送方式。

(5).I/O处理机方式:利用专门的计算机进行I/O传送的I/O处理机方式。

2.DMA方式

(1).DMA控制器或接口一般包括四个寄存器:状态控制寄存器、数据寄存器、地址寄存

器和字节计数器,这些寄存器能在信息传送之前进行初始化。每个字节传送后,地址寄存器增1,字节计数器减1。

(2).计算机系统完成DMA传送的步骤

首先由接口发出DREQ信号,请求DMA控制器进行数据传送;

1).DMA控制器向CPU发出HOLD信号,请求使用总线。

2).CPU发出响应信号HLDA给DMA控制器,并将总线让出,DMA控制器取得总线

控制权。

DMA控制器向接口发出DACK(DMA应答)信号,启动接口进行数据传送;

3).传输数据的存储器地址通过地址总线发出。

4).传输的数据字节通过数据总线传送。

5).地址寄存器增1。

6).字节计数器减1。

7).如字节计数器未减1到0,则转向第3步。

8).否则,DMA控制器撤销总线请求信号HOLD,CPU收回总线控制权,传送结束。

1.380x86的寻址方式

1.3.1与数据有关的寻址方式

这种寻址方式用来确定操作数地址从而找到操作数。

1.立即数寻址方式:操作数直接存放在指令中,紧跟在操作码之后,这种操作数称为立即数。它作为指令的一部分存放在代码段里。如:MOV AL, 6;MOV AX, 300AH;MOV EAX, 2030300AH

2.寄存器寻址方式:操作数在寄存器中,指令指定寄存器号。如:MOV AL, AH

3.直接寻址方式:操作数的有效地址只包含位移量一种成份,其值就存放在代码段中的指令的操作码之后。位移量的值即操作数的有效地址EA。如:MOV AX, V ALUE;MOV AX, [2000H]

(1). 由此及往下的各种寻址方式的操作数都在除代码段以外的存储区中。用方括号(“[ ]”)

括起来的为存储器操作数。寄存器名称外加小括号“( )”表示是该寄存器的内容。

(2). 有效地址 (effective address, EA):即操作数的偏移地址。自此开始的寻址方式即为求

得有效地址(EA)的不同途径。有效地址的计算可以用下式表示:

EA =基址+(变址×比例因子)+位移量

有效地址可以由以下四种成分组成:

1). 位移量(displacement)是存放在指令中的一个8位、16位或32位的数,但它不是立即数,而是一个地址。

2). 基址(base)是存放在基址寄存器中的内容。它是有效地址中的基址部分,通常用来指向数据段中数组或字符串的首地址。

3). 变址(index) 是存放在变址寄存器中的内容。它通常用来访问数组中的某个元素或字符串中的某个字符。

4). 比例因子(scale factor)是386及其后继机型新增加的寻址方式中的一个术语,其值可为1、2、4或8。在寻址中可用变址寄存器的内容乘以比例因子来取得变址值。

(3). 段跨越前缀:80x86允许数据存放在数据段以外的段中,应在指令中用该段寄存器加

冒号(“:”)即段跨越前缀来指定该段。只要有BP 则隐含的段寄存器为SS 。否则隐含的段寄存器为DS 。如:MOV AX, ES: V ALUE 。但是在以下三种情况下,不允许使用段跨越前缀,它们是:

1). 串处理指令的目的串必须使用ES 段;

2). PUSH 指令的目的和POP 指令的源必须用SS 段;

3). 指令代码必须存放在CS 段中。

(4). 80x86 CPU 中为了使指令字不要过长,规定双操作数指令的两个操作数中,只能有一

个使用存储器寻址方式,这就是一个变量常常先要送到寄存器的原因。

4. 寄存器间接寻址方式:操作数的有效地址只包含基址寄存器或变址寄存器内容一种成份。有效地址就在某个寄存器中,而操作数则在存储器中。可使用段跨越前缀。如:MOV AX, ES: [BX]

5. 寄存器相对寻址方式(或称直接变址寻址方式):操作数的有效地址为基址寄存器或变址寄存器的内容和指令中指定的位移量之和,有效地址由两部分组成。可使用段跨越前缀(又称为段超越)。如:MOV ES: STRING[SI], DL

??????+??????????????=位位移量位位移量168)SI ()DI ()BP ()BX (EA 6. 基址变址寻址方式:操作数的有效地址EA 是一个基址寄存器和一个变址寄存器的内容之和。可使用段跨越前缀。如:MOV AX, ES: [BX][SI]

?

?????+??????=)DI ()SI ()BP ()BX (EA 7. 相对基址变址寻址方式:操作数的有效地址EA 是一个基址寄存器与一个变址寄存器的内容和指令中指定的位移量之和。可使用段跨越前缀。如:MOV ES: MASK[BX][SI], AX

?

?????+??????+??????=位位移量位位移量168)DI ()SI ()BP ()BX (EA 对80386及以后机型。寄存器为EAX 、EBX 、ECX 、EDX 、ESI 、EDI 、ESP 、EBP 。位移量可增加到32位的位移量(无16位位移量)。下同。

8. 端口(输入/输出)寻址方式:一个操作数必须为AX 或AL 或EAX ,另一个用端口直接寻

址方式(端口号<256)或端口间接寻址方式(DX 的内容为端口号)。如:IN AL, 0ADH ; OUT DX, AX

附:书上3.1.2所用到的操作符意义:

2. SHORT :属性操作符,表示段内短程转移。

3. PTR :属性操作符,建立一个符号地址(取后面内容的地址)。

4. NEAR :类型操作符,距离类型,段内近程。

5. FAR :类型操作符,距离类型,段间远程。

6. WORD :类型操作符,数据类型,字。

7. DWORD :类型操作符,数据类型,双字。

8. NEAR PTR :取段内近程地址值操作符。

9. FAR PTR :取段间远程地址值操作符。

10. WORD PTR :取字长地址值操作符。

11. DWORD PTR :取双字长地址值操作符。

补码及其加减运算

9. n 位补码所表示数的范围:-2 n-1≤N ≤2 n-1-1

10. 双字长数或双精度数:在机器里,为了扩大表数范围,可以用两个机器字(高位字和低位字)来表示一个机器数,这种数称为双字长数或双精度数。在80386及其后则有4字(64位)。

1.3.2 补码的加法和减法

1. 求补运算:对一个二进制数按位求反后在末尾加1的运算称为求补运算。

[X]补 [-X]补 [X]补

2. 补码的减法运算规则

[X -Y]补 = [X]补+ [-Y]补

1.3.3 无符号整数:把最高有效位也作为数值处理的数称为无符号整数。

1.3.4 字符表示法(ASCII 码):80x86机采用目前最常用的美国信息交换标准代码ASCII 码表

示。

1.3.5 BCD 码:4位二进制数编码的十进制数称为BCD 码(又叫8421码)。BCD 码是无符号

整数

1. 压缩BCD 码:用4位二进制数表示一个十进制数位。

2. 非压缩BCD 码:用8位二进制数表示一个十进制数位

1.3.6 “异或”运算(XOR)

Y = ?=⊕A B A B = A XOR B

所有的逻辑运算都是按位操作的。

1.4 中央处理机

1.4.1 中央处理机CPU 的组成

1. CPU 的任务是执行存放在存储器里的指令序列。

求补 求补

2.CPU芯片中除高速缓冲存储器之外,主要由以下三部分组成:

(1).算术逻辑部件(arithmetic logic unit,ALU):用来进行算术和逻辑运算。

(2).控制逻辑:负责对全机的控制工作。

(3).工作寄存器:用来存放计算过程中所需要的或所得到的各种信息。

1.4.280x86寄存器组

寄存器可以分为程序可见的寄存器和程序不可见的寄存器两大类。

①程序可见的寄存器是指在汇编语言程序设计中用到的寄存器,分为通用寄存器、专

用寄存器和段寄存器3类。

②程序不可见的寄存器是指一般应用程序设计中不用而由系统所用的寄存器。

1.通用寄存器

(1).数据寄存器:AX、BX、CX、DX,四个16位通用寄存器,用来暂时存放计算过程中

所用到的操作数、结果和其他信息。既可以以字形式(如AX)也可以以字节形式(如AH、

AL)访问。

1).AX(accumulator):累加器,算术运算的主要寄存器。所有的I/O指令都使用这一寄

存器与外部设备传送信息。

2).BX(base):通用寄存器,在计算存储器地址时常用作基址寄存器。

3).CX(count):通用寄存器,在循环和串操作指令中用作隐含的计数器。

4).DX(data):通用寄存器,在作双字长运算时把DX和AX合在一起存放一个双字长

数,DX用来存放高位字。对某些I/O操作,DX用于对I/O端口的寄存器间接寻址。(2).指针及变址寄存器:SP、BP、SI、DI,四个16位寄存器。

1).SP:堆栈指针寄存器。

2).BP:基址指针寄存器。

3).SI:源变址寄存器。

4).DI:目的变址寄存器。

2.专用寄存器:IP、SP、FLAGS,3个16位寄存器。

(1).IP:指令指针寄存器。存放代码段中的偏移地址。80386及其后继机型则是EIP。

(2).SP:堆栈指针寄存器,指示栈顶的偏移地址。80386及其后继机型则是ESP。

(3).FLAGS:标志寄存器,又称为程序状态字寄存器(program status word, PSW)。由条件

码标志(flag)、控制标志和系统标志构成。80386及其后继机型则是EFLAGS。8086/8088

的FLAGS如下所示:

1514131211109876543

210

OF DF IF TF SF ZF AF PF CF

1).条件码:用来记录程序中运行结果的状态信息,它们是根据有关指令的运行结果由

CPU自动设置的。由于这些状态信息往往作为后续条件转移指令的转移控制条件,

所以称为条件码。

a.OF:溢出标志(overflow flag)。结果溢出OF=1,否则OF=0。

b.SF:符号标志(sign flag)。结果为负SF=1,否则SF=0。

c.ZF:零标志(zero flag)。结果为0时ZF=1,否则ZF=0。

d.CF:进位标志(carry flag)。最高有效位有进位或借位CF=1,否则CF=0。

e.AF:辅助进位标志或半进位标志(auxiliary carry flag)。半个字节产生的进位或借

位时AF=1,否则AF=0。

f.PF:奇偶标志(parity flag)。结果低8位中所含的1的个数为偶数时PF=1,否则

PF=0。

2).控制标志位:为方向标志(direction flag, DF),在串处理指令中控制处理信息的方向

用。

a.DF=1:变址寄存器SI和DI减量,使串处理从高地址向低地址方向处理。

b.DF=0:变址寄存器SI和DI增量,使串处理从低地址向高地址方向处理。

3).系统标志位:可以用于I/O、可屏蔽中断、程序调试、任务切换和系统工作方式等

的控制。

a.TF:陷阱标志(trap flag, TF),又称单步标志。用于调试时的单步方式操作。TF=1

时每条指令执行完后产生陷阱(中断),TF=0时不产生陷阱。

b.IF:中断标志(interrupt flag, IF)。IF=1时允许可屏蔽中断请求,IF=0时禁止可屏

蔽中断。

c.I/O 特权级(I/O privilege level, IOPL),在保护模式下,用于控制对I/O地址空间

的访问。

(4).标志位的测试:用调试程序DEBUG测试。测试含义见书24页表2.2所示。

3.段寄存器:是一种专用寄存器,它们专用于存储器寻址,用来直接或间接地存放段地址。在80286以前的处理器中只有CS、DS、SS、ES四个16位寄存器。

汇编语言课后习题解答

第1章基础知识 检测点1.1(第9页) (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。 (2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。 (3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。 (4)1GB是1073741824(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。 (5)8080、8088、80296、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)在存储器中,数据和程序以二进制形式存放。

(1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU 最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。 (8)在存储器中指令和数据没有任何区别,都是二进制信息。

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

最新-单片机原理及应用期末考试必考知识点重点总结 精品

单片机概述 单片机是微单片微型计算机的简称,微型计算机的一种。 它把中央处理器(CPU),随机存储器(RAM),只读存储器(ROM),定时器\计数器以及I\O 接口,串并通信等接口电路的功能集成与一块电路芯片的微型计算机。 字长:在计算机中有一组二进制编码表示一个信息,这组编码称为计算机的字,组成字的位数称为“字长”,字长标志着精度,MCS-51是8位的微型计算机。 89c51 是8位(字长)单片机(51系列为8位) 单片机硬件系统仍然依照体系结构:包括CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、输入设备和输出设备、内部总线等。 由于一块尺寸有限的电路芯片实现多种功能,所以制作上要求单片机的高性能,结构简单,工作可靠稳定。 单片机软件系统包括监控程序,中断、控制、初始化等用户程序。 一般编程语言有汇编语言和C语言,都是通过编译以后得到机器语言(二进制代码)。 1.1单片机的半导体工艺 一种是HMOS工艺,高密度短沟道MOS工艺具有高速度、高密度的特点; 另一种是CHMOS工艺,互补金属氧化物的HMOS工艺,它兼有HMOS工艺的特点还具有CMOS的低功耗的特点。例如:8181的功耗是630mW,80C51的功耗只有110mW左右。1.2开发步5骤: 1.设计单片机系统的电路 2.利用软件开发工具(如:Keil c51)编辑程序,通过编译得到.hex的机器语言。 3.利用单片机仿真系统(例如:Protus)对单片机最小系统以及设计的外围电路,进行模拟的硬软件联合调试。 4.借助单片机开发工具软件(如:STC_ISP下载软件)读写设备将仿真中调试好的.hex程序拷到单片机的程序存储器里面。 5.根据设计实物搭建单片机系统。 2.1MCS-51单片机的组成:(有两个定时器) CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。 工作过程框图如下:

汇编语言程序设计报告

实验一: 一、实验目的: 1. 学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2. 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3. 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4. 掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上 三、实验内容及算法流程、源程序清单 实验内容:编写程序,从键盘输入一个字符并回显到视频显示器上。 源程序清单: 实验1.asm 实验1.obj 实验1.exe code segment assume cs:code start: mov ah,1 int 21h mov ah,4ch int 21h code ends end start 实验二:编写程序,显示一个字符Q 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的02h号功能显示输出一个字符Y。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,显示输出一个字符Q。 源程序清单: 实验2.asm 实验2.obj 实验2.exe code segment assume cs:code start: mov ah,02 mov dl,'Q' int 21h mov ah,4ch int 21h code ends end start 实验三:编写程序,在屏幕上显示输出“I love DOTA” 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 考察通过调用(INT 21H)表中的0ah号功能显示输出字符串 三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,在屏幕上显示输出‘I love DOTA。 源程序清单: 实验3.asm 实验3.obj 实验3.exe data segment buf db 'I love DOTA.$'

汇编语言程序设计 知识点 V3.0

第一章 1、什么是汇编语言? 2、汇编语言程序设计过程:编辑源程序,编译(汇编),连接,运行调试 3、汇编语言特点?与机器语言一一对应,直接操作硬件,高效率(空间和时间,运行速度快,目标代码短,占用存储空间少) 4、数制转换 第2章8086计算机组织结构 1、计算机硬件系统组成:CPU、存储器、输入输出设备。 2、CPU组成:运算器、控制器、寄存器,运算器和控制器由芯片设计时设计好,不可做任何改动,程序设计员仅能在程序里使用寄存器,寄存器都有相应的名字,如AX,能在程序里直接使用寄存器是汇编语言区别于高级语言的最重要特点,这样就可以直接控制硬件系统。 3、总线结构:数据总线、地址总线、控制总线。数据总线分8位、16位、32位和64位等,多少位机就是以数据总线来划分,比如8位机、32位机。8086机是16位机,但地址总线是20位,地址总线数量决定了内存寻址空间的大小,如8086有20位地址线,那么寻址空间是:220=210*1K=1M,8086最大寻址空间为1MB,即地址范围:00000H~FFFFFH。控制总线主要传送控制信息,如读写操作,读写操作的主体是CPU,读操作是指CPU从内存或外设读取数据,写操作是指CPU把数据写到内存或外设中。 4、存储器:存储器的最小单元是字节(Byte,由8个位组成),字节的多少就是存储器的容量。每一个字节单元都有一个唯一的编号,这个编号就是字节单元的地址,此地址就是物理地址,对于8086而言,编号的形式为:XXXXXH,如85421H。如果要读写存储器,必须知道某一个字节单元的地址。多个字节单元可以组合成更大的单元(数),比如2个字节单元组合成一个字(Word),4个字节单元组合成一个双字(Double Word)等,规定:这个组合后的大单元是以最小字节单元地址为自己的地址。如85421H字节单元内容为12H,85422H 字节单元内容为34H,那么以85421H地址的字单元的内容就是3412H。 地址取最小字节单元的地址为大单元的地址。 内容排序按照“高高低低”原则:高字节放在高地址里,低字节放在低地址里。 详细请参看2.3节(P30页) 5、8086CPU寄存器 (1)通用类:AX(AH,AL)、BX(BH,BL)、CX(CH,CL)、DX(DH,DL) (2)段寄存器类:CS、DS、ES、SS (3)与偏移地址相关类:SI、DI、SP、BP (4)特殊类:IP、FLAGS 所有寄存器都是16位大小,通用类的16位又可看成2个8位的寄存器组成,区分为高8位(High)和低8位(Low),因此取名为AH和AL,其他类似。 CS:存放代码段段地址,DS:存放数据段段地址,SS:存放堆栈段段地址,ES:存放数据附加段段地址,一般作为DS的辅助使用,比如在一段程序里需要用到2个不同数据段的数据时,其中一个数据段段地址存放在DS中,另一个存放在ES中。 SI、DI:一般用于变址寻址方式,如[BX+SI]、[BX+DI], SP:堆栈段中堆栈栈顶的偏移地址,不可修改,由SS:SP逻辑地址始终指向堆栈的栈顶。 详细参看2.3.2,P32页 BP:一般也用于堆栈,可以作为SP的备份,通常也是用SS:BP逻辑地址表示,BP可以随意修改,因此通过SS:BP可以访问堆栈的任何地方。此外,BP还与BX一样,可以作为基地址

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期

目录 目录错误!未定义书签。 1 概述错误!未定义书签。 设计目的错误!未定义书签。 设计内容错误!未定义书签。 2 系统需求分析错误!未定义书签。 系统目标错误!未定义书签。 主体功能错误!未定义书签。 开发环境错误!未定义书签。 3 系统概要设计错误!未定义书签。 系统的功能模块划分错误!未定义书签。系统流程图错误!未定义书签。 4系统详细设计错误!未定义书签。 5 测试错误!未定义书签。 测试方案错误!未定义书签。 测试结果错误!未定义书签。 6 小结错误!未定义书签。 参考文献错误!未定义书签。 附录错误!未定义书签。 附录源程序清单错误!未定义书签。

实现加减乘除四则运算的计算器 1 概述 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 开发环境 集成环境 3 系统概要设计 系统的功能模块划分 本题目实现的模块图如图3-1所示

计算机导论知识点总结

计算机导论知识点总结 指令系统:一台计算机中所有指令的的集合,它是表征一台计算机性能的重要指标。 微型计算机中,控制器的基本功能是指令的操作数。 USB总线是以串行方式传输数据。 计算机网络:计算机网络是利用通信线路连接起来相互独立的计算机的集合,其主要目的是实现数据通信和资源共享。 计算机病毒:破坏计算机功能或数据,影响计算机使用,并能自我复制的一组计算机指令或程序。 操作系统:操作系统是由程序和数据结构组成的大型系统软件,它负责计算机的全部软硬件的资源分配,调度和管理,控制各类程序的正常执行,并为用户使用计算机提供良好的环境。 高速缓冲储存器(Cache):位于cpu和内存之间的储存器,其 特点是速度快,目的是是储存器的速度与cpu的速度相匹配。 总线:若干信号线的集合,是计算机各部分之间实现信息传递的通道。 数据结构:数据结构是指具有一定的结构(关系)的数据元素的集合,主要研究数据的各种逻辑结构和物理结构,以及对数据的各种操作。 进程:一个程序(或者程序段)在给定的工作空间和数据集合上的一次执行过程,它是操作系统进行资源分配和调度的一个独立单位。 程序计数器:由若干位触发器和逻辑电路组成,用来存放将要执

行的指令在储存器中存放地址。 机器指令:计算机执行某种操作的命令,可由cpu直接执行。 cpu主要的技术指标: 1.字长:cpu一次处理的二进制数的位数。 2.主频:cpu内部工作的时钟频率,是cpu运算时的工作频率。 3.地址总线宽度:决定了cpu可以访问储存器的容量,不同型号cpu的总线宽度不同,因而可使用的内存的最大容量也不同。 4.数据总线宽度:决定了cpu与内存,I/0设备之间一次数据传输的信息量。 5.高度缓冲:可以进行高速数据交换的存储器,它先于内存,与cpu交换数据。 6.指令系统:指令的寻址方式越灵活,计算机的处理能越强。 7.机器可靠性:平均无故障时间越短,机器性能月好。 计算机硬件主要由运算器,控制器,储存器,输入设备,输出设备和(总线)组成 1.运算器:主要完成算数运算和逻辑运算。 2.控制器:实现取指令,分析指令和执行指令操作的控制,实现对整个运算过程的有规律的控制。 3.储存器:是用来存放数据和程序的部件,可以分为主存储器(也称内存储器),和辅助存储器。 4.输入设备,输出设备:是实现计算机系统与人(或者其他系统)之间进行信息交换的设备。输入设备将外界信息转化为

汇编语言程序设计报告模板总结模板计划模板.docx

《汇编语言》课程设 计报告 专业计算机科学与技术 学生姓名张竹青 班级Z计算机 151 学号1560704132 任课老师王志宏 完成日期2017年12月29日

目录 1 概述 (1) 1.1 设计目的 (1) 1.2 设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (2) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4 系统详细设计 (4) 4.1 界面设置 (4) 4.2 选择算法设置 (4) 4.3 十进制转换设置 (4) 5 测试 (5) 5.1 测试方案 (5) 5.2 测试结果 (5) 6 小结 (6) 参考文献 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 使用汇编语言,通过实现简单计算器的一般功能,如加、减、乘、除的计算来 了解并掌握 DOS系统功能的调试方法,学会画出编程的具体流程图,同时在程序 设 计过程中熟悉各种指令的应用和意义,以及如何进行上机编辑、汇编、连接和调试。 本课程设计也是对课堂上所学的基本理论知识和程序设计方法的巩固和深化, 提高我们的编程思想、分析问题和解决问题的综合应用能力,能够编写较复杂的应 用程序,最终达到熟练地掌握结构化程序设计技术和编写汇编源程序的基本方法的 目的。 1.2 设计内容 设计一个能实现加、减、乘、除计算的程序,要求该程序接受从键盘输入的十 六进制数,当程序执行时需在文件名后直接跟上计算表达式,每当读到一个有效的 表达式时对表达式进行相应的运算后,输出用十进制数或十六进制数表示的运算结果,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2系统需求分析 2.1 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单的加减乘除四则运算的 计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则 运算。具体功能如下: (1)调用中断把要做运算的两个数输入到屏幕上并用程序将他们存储起来 (2)判断用户所输入的运算是四则运算中的哪一种运算 (3)判断运算过程中是进位还是借位 (4)选择用何种输出方式 (5)实现清屏 2.2 主体功能 要求该程序接受的是十六进制数,执行相应的计算后,计算结果以十六进制数 或十进制数输出。本设计的使用说明如下: (1)按照提示选择数字 1,2,3,4 (2) 1: ADD 加法 (3) 2: SUB 减法 (4) 3: MUL 乘法

汇编语言知识点

第一章 十进制与二进制之间的转换(P2) 降幂法 除法 十进制与六进制之间的转换(P5) 降幂法 除法 补码表示:正数:采用符号—绝对值法 负数:先写出对应的正数的补码表示,然后再将其按位数求反,最后末尾加1,就可以得到负数的补码表示 补吗运算:二进制数按位求反后在末尾加1 第二章 一、存储容量 1K = 1024 =210 (Kilo)1M =1024K = 220 (Mega) 1G = 1024M = 230 (Giga) 1个二进制位:bit (比特)8个二进制位:Byte(字节)1Byte = 8bit 2个字节:1 Word (字)1Word = 2Byte = 16bit 二、存储单元地址和内容 1.存储器以字节(8 bit)为编程单位 2.每个字节单元都有唯一的地址编码 3.地址用无符号整数来表示(编程用十六进制表示) 4.一个字要占用相继的两个字节 5.低位字节存入低地址,高位字节存入高地址 6.字单元地址用它的低地址来表示 7.机器以偶地址访问(读/ 写)存储器 三、物理地址= 16 段地址+ 偏移地址 四、存储器的分段: 20 根地址线:地址范围00000H ~ FFFFFH (1MB) 机器字长16位:仅能表示地址范围0000H ~ FFFFH (64KB) 小段:每16个字节为一小段,共有64K个小段 段起始地址:小段首地址 段的大小:64K 范围内的任意字节 五、存储器的逻辑分段优点: 允许程序在存储器内重定位; 允许实模式程序在保护模式下运行; 有利于程序和数据的分离。 六、中央处理器8086/8088寄存器组: 通用寄存器 数据寄存器:AX,BX,CX,DX 变址寄存器:SI、DI 指针寄存器:SP、BP 控制寄存器:IP、FLAGS 段寄存器:CS、DS、SS、ES

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

汇编语言-高频考点

汇编语言重点知识总结 汇编速查手册汇编语言总结概要寄存器与存储器 1.寄存器功能 .寄存器的一般用途和专用用途 .CS:IP 控制程序执行流程.SS:SP 提供堆栈栈顶单元地址.DS:BX(SI,DI)提供数据段内单元地址.SS:BP 提供堆栈内单元地址 .ES:BX(SI,DI)提供附加段内单元地址 .AX,CX,BX 和CX 寄存器多用于运算和暂存中间计算结果,但又专用于某些指令(查阅指令表)。.PSW 程序状态字寄存器只能通过专用指令(LAHF,SAHF)和堆栈(PUSHF,POPF)进行存取。 2.存储器分段管理 .解决了16位寄存器构成20位地址的问题 .便于程序重定位 .20位物理地址=段地址*16+偏移地址 .程序分段组织:一般由代码段,堆栈段,数据段和附加段组成,不设置堆栈段时则使用系统内部的堆栈。 3.堆栈 .堆栈是一种先进后出的数据结构,数据的存取在栈顶进行,数据入栈使堆栈向地址减小的方向扩展。 .堆栈常用于保存子程序调用和中断响应时的断点以及暂存数据或中间计算结果。.堆栈总是以字为单位存取 指令系统与寻址方式 1.指令系统 .计算机提供给用户使用的机器指令集称为指令系统,大多数指令为双操作数指令。执行指令后,一般源操作数不变,目的操作数被计算结果替代。 .机器指令由CPU 执行,完成某种运算或操作,8086/8088指令系统中的指令分为6类:数据传送,算术运算,逻辑运算,串操作,控制转移和处理机控制。 2.寻址方式 .寻址方式确定执行指令时获得操作数地址的方法 .分为与数据有关的寻址方式(7种)和与转移地址有关的寻址方式(4)种。 .与数据有关的寻址方式的一般用途: (1)立即数寻址方式--将常量赋给寄存器或存储单元 (2)直接寻址方式--存取单个变量 (3)寄存器寻址方式--访问寄存器的速度快于访问存储单元的速度计算机、电子信息、通信工程专业适用涉及微机原理、单片机原理 本资料结合知识点整理了近年来各名校复试真题 考研 专业课复试 高频考点复习指导 8086对存储器进行访问取指令时,物理地址可由(CS和IP )组合产生。设SS=3300H,SP=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则SP=(113AH )。利用DOS系统功能调用的9号(AH=9)功能,显示一个字符串,其入口参数应为 (DS:DX=字符串首地址)。在指令MOV AX,0 执行后,CPU状态标志位ZF的取值(不改变) 执行MOV PSW,#10H是将MCS-551的工作寄存器位置为(第2组) 某数存于内存数据段中,已知该数据段的段地址为2000H,而数据所在单元的偏移位置为0120H,该数据在内存的物理地址为(20120H ) MCS-51单片机的堆栈区应建立在(片内数据存储区的高128字节单元)MCS-51单片机的位寻址区位于内部RAM的(20H-2FH)单元

汇编语言程序设计大纲

《汇编语言程序设计》课程教学大纲 课程编号: 0910218 课程名称:汇编语言程序设计 英文名称:Assemble Language Programming 课程类型: 专业基础课 总学时:48 讲课学时:48 实验学时:0 学分:3 适用对象: 计算机科学与技术、网络工程、信息安全及相关专业 先修课程:数字逻辑与数字系统设计、数据结构 一、课程性质、目的和任务 汇编语言程序设计是计算机科学与技术、网络工程、信息安全等专业的必修课,是进一步学习操作系统、编译、接口与通信等专业课的基础。通过本门课程的学习,学生可以加深对计算机工作原理的理解,有助于促进后续课程的学习。同时,汇编语言作为一种计算机语言工具,对于学生将来从事计算机的研究与应用是必需的,有助于提高学生的程序设计能力。 二、教学基本要求 通过本课程的学习,要求学生了解或掌握:模型机的基本结构、工作原理、寻址方式及指令系统,用汇编语言编写顺序、分支、循环、子程序、宏汇编语言程序等各种程序的技术。学会编写输入/输出程序和中断服务程序,掌握利用系统的功能调用进行程序设计的方法。掌握汇编过程和汇编程序的原理,能够正确熟练地使用编辑、汇编、链接和调试等各种软件工具。 三、教学内容及要求 1. 模型机结构。模型机系统的概述,存储器、中央处理器及外部设备与接口的基本概念、工作原理及编程方法。 2. 指令系统与寻址方式。模型机的寻址方式,机器语言指令格式,汇编语言指令系统。 3. 汇编语言程序格式。汇编程序的功能,伪操作,汇编语言程序格式。 4. 循环与分支程序设计。程序流程图的画法;分支与循环程序的设计思想与方法,重点介绍双重循环的程序设计和通过比较——判断、跳转表等方法进行分支程序设计。 5. 系统功能调用。介绍操作系统提供的BIOS、DOS等系统功能调用,学习通过功能调用进行程序设计的方法。 6. 子程序设计。子程序的设计方法,嵌套与递归子程序,堆栈在其中的应用。 7. 高级汇编语言技术。宏汇编、重复汇编、条件汇编的基本概念及其程序设计。 8. 输入输出及中断程序设计。I/O设备的数据传送方式,程序直接控制I/O方式和中断程序设计。 9. 软件工具。汇编程序、文本编辑程序、链接程序、调试程序的基本功能及汇编语言程序编写、调试、运行中的使用方法。 四、实践环节 见“汇编语言程序设计综合实验”。

汇编语言程序设计知识点

汇编语言程序设计知识点 第一章基础知识 (1)正负数的补码表示, 掌握计算机中数和字符的表示; 1、假设机器字长为8位,[+3]补 =00000011B,[-3]补= FD H 。 2、十六进制数0F8H表示的十进制正数为 248 ,表示的十进制负数为 -8。 3、8位二进制数被看成是带符号补码整数时,其最小值是 -128,最大值是 127 。 4、计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是ASCII 码,称为美国信息交换标准码。 第二章80x86计算机组织 (1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器 1、IP寄存器中保存的是?下一条指令的首地址 2、FLAGS标志寄存器中共有几位条件状态位?6位 3、有几位控制状态位?3位 4、标志寄存器分为哪2类?条件码,控制 5、哪个标志位用来控制可屏蔽中断请求是否被CPU响应?IF 6、键盘I/O、显示I/O和打印I/O分别对应16、10和17号中断。 (2)存储单元的地址和内容,存储器地址的分段,实模式下逻辑地址、物理地址的表示。 1、如果SS=6000H,说明堆栈段起始物理地址是60000H。 2、已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为1420H 。 3、如果数据段中一个内存单元对应的物理地址为3F756H,(DS)=3F00H,那么使用DS段寄存器指明该单元的段基值时,需要使用哪一个偏移量才能正确访问该单元756H。 4.如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H . 第三章80x86的指令系统和寻址方式 (1)与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址).数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS指令,与REPE/REPZ和REPNE/REPNZ

计算机系统结构知识点复习考点归纳总结

0.从(使用语言的)角度可以将系统看成是按(功能)划分的多个机器级组成的层次结构 1、从计算机系统执行程序的角度看,并行性等级由低到高分为(指令内部)、(指令之间)、(任务或进程之间)和(作业或程序之间)四级。 2、从计算机系统中处理数据的并行性看,并行性等级从低到高分为(位串字串)、(位并字串)、(位串字并)和(全并行)。 3、存储器操作并行的典型例子是(并行存储器系统和相联处理机),处理机操作步骤并行的典型例子是(流水线处理机),处理机操作并行的典型例子是(阵列处理机),指令、任务、作业并行的典型例子是(多处理机)。 4、开发并行的途径有(时间重叠),资源重复和资源共享。 5、计算机系统多级层次中,从下层到上层,各级相对顺序正确的应当是(微程序机器级,传统机器语言机器级,汇编语言机器级)。 6、对系统程序员透明的应当是(CACHE存储器、系列机各档不同的数据通路宽度、指令缓冲寄存器) 7、对机器语言程序员透明的是(主存地址寄存器) 8、计算机系统结构包括(机器工作状态、信息保护、数据表示) 9、对汇编语言程序员透明的是(I/O方式中的DMA访问) 10、属计算机系统结构考虑的是(主存容量和编址方式) 11、从计算机系统结构上讲,机器语言程序员所看到的机器属性是(编程要用到的硬件组织) 12、计算机组成设计考虑(专用部件设置、控制机构的组成、缓冲技术) 13、在多用户机器上,应用程序员能使用的指令是(“执行”指令、“访管”指令、“测试与置定”指令) 14、软硬件功能是等效的,提高硬件功能的比例会(提高解题速度、提高硬件成本、减少所需存储器用量) 15、下列说法中正确的是(软件设计费用比软件重复生产费用高、硬件功能只需实现一次,而软件功能可能要多次重复实现、硬件的生产用比软件的生产费用高) 16、在计算机系统设计中,比较好的方法是(从中间开始向上、向下设计)。 17、推出系列机的新机器,不能更改的是(原有指令的寻址方式和操作码)。 18、不同系列的机器之间,实现软件移植的途径包括(用统一的高级语言、模拟、仿真)。 19、在操作系统机器级,一般用(机器语言)程序(解释)作业控制语句。 20、高级语言程序经(编译程序)的(翻译)成汇编语言程序。 21、传统机器语言机器级,是用(微指令程序)来(解释)机器指令。 22、汇编语言程序经(汇编程序)的(解释)成机器语言程序。 23、微指令由(硬件)直接执行。 24、系列机软件必须保证(向后兼容),一般应做到(向上兼容) 25、在计算机系统的层次结构中,机器被定义为(能存储和执行相应语言程序的算法和 数据结构)的集合体 26、优化性能价格比指(在某种价格情况下尽量提高性能)或(在满足性能前提下尽量降低价格)。 27、目前,M0由(硬件)实现,M1用(固件)实现,M2至M5大多用(软件)实现。 28、系列机中(中档机)的性能价格比通常比(低档机、高档机)的要高 29、(计算机组成)着眼于机器级内各事件的排序方式,(计算机体系结构)着眼于对传统机器级界面的确定,(计算机组成)着眼于机器内部各部件的功能,(计算机实现)着眼于微程序设计。 30、计算机系统结构也称(计算机体系结构),指的是(传统机器级)的系统结构。 31、用微程序直接解释另一种机器指令系统的方法称为(仿真),用机器语言解释

汇编语言程序设计课程教学大纲.

《汇编语言程序设计》课程教学大纲 二、课程性质与教学目标 《汇编语言程序设计》是计算机科学与技术专业一门重要的基础课,是必修的核心课程之一,是"操作系统"和"微机原理和接口技术"等其它核心课程必要的先修课,而且对于训练学生掌握程序设计技术,熟悉上机操作和程序调试技术都有重要作用。因此该课程在整个教学计划中占有重要地位。 本课程的目的和要求是: 1、应使学生掌握8086/8088宏汇编语言程序设计的基本方法和技巧,能够运用8086/8088宏汇编语言编写应用程序。提高学生分析问题、解决问题的能力以及实际动手能力。 2、应使学生基本掌握汇编语言程序设计的基本理论,方法和技巧,正确地使用结构化、模块程序设计技术。注意培养学生良好的程序设计风格。 3、应使学生比较熟练地使用调试工具DEBUG调试8086/8088汇编语言程序。注意提高学生的调试能力。 4、注意与前后相关课程的关系。使学生对前导课程有进一步的理解,同时为学习后继课程打好基础。 三、教学内容及基本要求 第一单元基础知识 [知识点] 汇编语言的基本概念、数据的表示和类型、几种基本的逻辑运算、Intel 8088/8086微处理器基本概念、存储器分段和地址的形成、

[教学内容] 1.以二进制存在的机器语言。计算机内部数的存储及运算也都是采用二进制。 2.制数的值由1所在位置的权来确定。 3.进制是一种很重要的短格式记数法,它把二进制数每4位分成一组,分别用0-9和 A-F来表示0000-1111。反之,16进制数的每一位用四位二进制表示,就是相应的二进制数。 4.十进制转换为二进制的方法主要有降幂法和除法。计算机十化二程序中采取下面的算法: 5.标志位OF=1表示带符号数的运算结果无效。CF=1表示无符号数运算结果无效。 6.计算机中的字符数据用ASCⅡ码表示,一个字符在存储器中占用一个字节(8位二进制码)。 7.BCD码是一种用二进制编码的十进制数,又称二-十进制数或8421码,它用4位二进制数表示一个十进制数码。BCD码有压缩和非压缩两种格式,压缩的BCD码用4位二进制数表示一个十进制数位,如95 表示为1001,0101。非压缩的BCD码用地位二进制数表示一个十进制数位。如95 表示为00001001 00000101。 8.两种类型的内部存储器是ROM(只读存储器)和RAM(随机存储器)。存储器按字节编址,存储器地址一般用16进制的无符号数表示。 9.字数据在存储器中存放的顺序为高地址字节放高8位,低地址字节放低8位。 10.AX、BA、CA、和DX是通用寄存器,每个通用寄存器可作两个8位寄存器使用(如AH和AL)。 11.一个20位的物理地址可表示成段地址:偏移地址。计算存储器单元的物理地址,可将段地址乘以10H,再加上偏移地址。 物理地址=(段地址×10H)+偏移地址 12.段寄存器CS、SS、DS和ES分别寄存代码段、堆栈段、数据段和附加段的段地址。 13.变址寄存器SI和DI一般指示数据段内单元的地址,有时也可作为数据寄存器用。 14.16位的标志寄存器个包括6个状态标志(SF、ZF、PF、CF、AF、OF)和3个控制标志(DF、IF、TF)。(CF、AF、SF、ZF和OF反映了算术运算以及移位、循环、逻辑等操作的结果状态。 [重难点] 1.教学重点 1.汇编语言的基本概念 (1)机器语言,汇编语言,汇编程序,汇编语言源程序,目标程序,目标代码,可执行程序。 (2)汇编语言的特点 (3)为什么要学习汇编语言,汇编语言的应用场合。 2.数据的表示和类型 (1)数值数据的表示,符号扩展,数值数据的表示范围,BCD码,不同数据之间的转换。 (2)非数值数据类型:字节、字、双字等。 3.几种基本的罗辑运算 “与”、“或”、“非”、“异或” 4.Intel 8088/8086微处理器基本概念 (1)8086/8088基本结构:执行单元EU,总线接口单元BIU,指令的执行次序。

汇编语言知识大全

第一章基础知识: 一、机器码:1、计算机只认识0,1两种状态。而机器码只能由0,1组成。故机器码相当难认,故产生了汇编语言。 2、其中汇编由三类指令形成:汇编指令(有机器码对应),伪指令,其她符号(编译的时候有用)。 每一总CPU都有自己的指令集;注意学习的侧重点。 二、存储器:1、存储单元中数据与指令没任何差别。 2、存储单元:Eg:128个储存单元(0~127)128byte。 //1字节=1B=1byte=8bit 条件反射:1存储单元=1B=8个2进制;以后的ax,cs 之类的占两个存储单元, ah之类的占一个 3、CPU对存储器的读写:地址信息+控制信息+数据信息 三、总线: 1、地址总线:寻址用,参数(宽度)为N根,则可以寻到2^N个内存单元。 //因为一根总线只能表示0,1,N根的话可以表示2^N 2、数据总线:传送数据用,参数为N根,一次可以传送N/8个存储单元。 3、控制总线:cpu对元器件的控制能力。越多控制力越强。

四、内存地址空间:1、由地址总线决定大小。 2、主板:cpu与核心器件(或接口卡)用地址总线,数据总线,控制总 线连接起来。 3、接口卡:由于cpu不能直接控制外设,需通过接口卡间接控制。 4、各类存储器芯片:RAM,BIOS(主板,各芯片)的ROM,接卡槽的 RAM CPU在操控她们的时候,把她们都当作内存来对待,把她们总的瞧作一个由 若干个存储单元组成的逻辑存储器,即我们所说的内存地址空间。 自己的一点理解:CPU对内存的操作就是一样的,但就是在cpu,内存,芯片之间的硬件本身所牵扯的线就是不同的。所以一些地址的功能就是对应一些芯片的。 第二章寄存器 引入:CPU中含有运算器,寄存器,控制器(由内部总线连接)。而寄存器就是可以用来指令读写的部件。8086有14个寄存器(都就是16位,2个存储空间)。 一、通用寄存器(ax,bx,cx,dx),16位,可以分为高低位

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

相关文档
相关文档 最新文档