三级pc知识点大总结-精华版(7)

2019-08-29 18:57

该语句通常要与DB、DW、DD等变量定义语句或指令语句连用。这样,它就为与其相连的变量或标号定义一个指定类型的标识符(即新的变量名或标号)。这个新标识符同样有段、偏移量、类型3个属性,其中段和偏移量与相连的变量或标号相同,而类型属性的选择则取决于该标识符与什么连用。如果它与变量连用,其类型可定义为BYTE、WORD或DWORD等;如果它与标号连用,则其类型可定义为NEAR或FAR。

2)变量定义的伪指令

定义变量就是为数据分配存储单元,且对这个存储单元取一个名字,即变量名。存储单元的初值由程序员预置,语句的格式如下:

[<变量名>]{DB|DW|DD|DF|DQ|DT}<表达式>,<表达式>,?

该格式中,变量名是可选的,{ }表示其中的伪操作命令必须选用一种,表达式是赋给变量的初值,常见的有如下几种: (1)数值表达式

这实际上是为数据分配存储单元,并用变量名作为该存储单元的名称。若要定义多个相同类型的数据,可以用逗号把这些数据隔开,并依次分配相邻的存储单元,例如:

BYTES DB 50H,60H

(2)这时必须用DW或DD进行定义。若用DW定义,则变量中存入的是偏移地址;若用DD定义,则变量中存放的是偏移地址和段地址,它们分别处于变量的低位和高位字中。例如:

SRC DD 12345678H LDS SI,SRC ;将SRC中的32位数据作为段地址和偏移地址送DS和SI寄存器

ADDR1 DW SRC ;ADDR1中存放变量SRC的偏移地址

ADDR2 DD SRC ;ADDR2中存放变量SRC的段地址和偏移地址 (3)ASCII字符串

ASII字符串可以用DB伪操作命令为串中的一个字符分配一个字节存储单元,注意,字符串必须用引号括起来,并且不超过256个字符,它们在内存中自左至右以字符的ASCII码按地址递增顺序依次存放。 (4)?表达式

这仍然是为数据项分配存储单元的一种方法,但存储单元中不预置确定的值,常用来预留存储单元,存放程序的中间结果或最终结果。例如: TEMP DB ? ;分配一个字节单元 (5)带DUP的表达式

DUP是重复数据定义操作符,利用带DUP的表达式可以为若干重复数据分配存储单元,并赋给相应的变量名。带DUP的表达式格式如下: DUP<(表达式)>

其中圆括号内的表达式是重复的内容,n是重复次数,例如:

TAB1 DB 10H DUP(?) ;分配10H个字单元,每个单元可预置任意内容 TAB3 DB 10h DUP(’ABCD’) ;重复10H个字符串’ABCD’,共占有40个字节单元

3)程序分段定义伪指令

(1)SEGMENT和ENDS段定义伪操作命令

是利用这种伪操作命令定义一个段的基本格式:

<段名>SEGMENT[<定位类型>],[<组合类型>],[<’类别名’>] ? ; 段体 <段名>ENDS ①定位类型

BYTE:表示本段起始单元可以从任一地址开始,段间不留空隙,存储器利用率最高。 WORD:表示本段起始单元从一个偶字节地址开始,即段起始地址的最后一位二进制数一定是0,如02152H、0A156H等。这种定位方式适合于数据项的类型为字的数据段。

PARA:默认值,表示本段起始地址从一个字节的边界开始,一个节为16个字节,所以段的起始地址一定能被16整除。

PAGE:表示本段起始地址从一个页的边界开始。一页为256个字节,所以段的起始地址一定能被256整除。 ②组合类型

NONE:默认值,表示本段与其他段无组合关系,每段都有自己的段基址。 PUBLIC:表示满足定位类型的前提下与其他模块的同名段连接在一起,形成一个新的逻辑段,共用一个段基址,所有偏移量调整为相对于新逻辑段的起始地址。 COMMON:表示产生一个覆盖段。

STACK:表示把所有同名段连接成一个连续段,自动初始SS和SP,使SS的内容为该连续段的首地址,SP指堆栈低部+1的存储单元。

MEMORY:表示本段在存储器中应定位在所有其他段的最高地址。 AT<表达式>:表示本段从表达式指定的地址开始装入。

③类别名:这是用单引号括起来的字符串,以表示该段的类型。 (2)ASSUME段寻址伪操作命令

该命令用来建立段寄存器与段名之间的联系。语句格式如下。 ASSUME<段寄存器>:<段名>[,<段寄存器>:<段名>,?]

其中段寄存器是CS、DS、SS、PS、GS中的一个,段名是指SEGMENT/ENDS伪指令语句中定义的名字,段寄存器和段名之间必须用冒号“:”分离。 ASSUME CS:CSEG,DS:DSEG,SS:SSEG,ES:ESEG (3)定位伪操作命令ORG和当前位置计数器$

汇编程序对源程序中的段进行汇编处理时,将段名填入段表,同时为该段配备一个初值为0的位置计数器。计数器依次累计段内语句被汇编后生成的目标代码字节个数。为了能够改变该位置计数器的内容,可用伪操作命令ORG实现,它的伪指令格式如下: ORG<数值表达式>

该伪指令把位置计数器的值设置成表达式的值。这样,ORG后面的一条指令语句或数据区定义伪指令就从指定位置进行汇编。表达式的值应该是非负的整数,而且要保证计数器指针定位在0~65 535之间。 4)过程定义伪指令

80x86宏汇编语言用于过程定义的伪操作命是PROC和ENDP,它的语句格式如下: <过程名>PROC[NEAR或FAR] ? RET

<过程名>ENDP

5)宏指令

宏指令可以把重复出现的程序段定义成一条宏指令。这样,在源程序中就可以用一条宏指令代替所定义的程序段,从而使用非常简练、清晰、免去重复书写所定义的程序段。而在汇编时,每当遇到该宏指令,就将其替换成相应的代码块。下面比较详细地说明宏处理的3个过程,即宏定义、宏调用和宏扩展。 (1)宏定义

宏定义由伪操作命令MACRO和ENDM伪操作命令定义,其语句格式如下: <宏指令名>MACRO[<形式参数>。?] ? ENDM

其中,从MACRO语句到ENDM语句之间的所有语句构成了宏指令体(简称宏体)。宏体中使用的形式参数必须在MACRO语句中列出,当有两个以上的形式参数时,必须用逗号隔开。这些形式参数在引用宏指令时被给出的一些名字或数值所取代,这里的名字或数值称为“实参数”。事实上,形式参数只为实参数保留了一些空间,它们指出了在任何以及如何使用实参数的方法。形式参数的使用使宏指令更加灵活。 (2)宏调用

经过宏定义,在源程序中任意位置可以直接引用宏指令名,构成宏指令语句。宏指令名的引用就是宏调用,它要求汇编程序把宏定义的程序段目标代码复制到调用点。如果宏定义是带参数的,就用宏调用时的实参数替代形式参数,其位置一一对应。宏调用的格式如下: <宏指令名>[<实参数>,?]

其中实参数将一一对应地替代宏指令体中的形式参数。当有两个以上的参数时,应该用逗号隔开。

(3)当宏汇编程序扫描到宏指令语句(即宏调用)时,宏汇编程序就把宏体中的指令插入到源程序宏指令所在的位置上,用实参数替代形式参数,并在插入的每一条指令前加上一个“+”号,这一过程就称为宏扩展。 为了解决多次宏调用时,避免宏指令内部使用的符号重复定义的错误,在宏定义中第一条语句必须用局部符号宏指令对其内部使用的符号进行说明。局部符号宏指令的格式如下:

OLCAL<形式参数>[,<形式参数>,?] 6)程序模块的定义和通信

汇编语言可以把程序分成许多模块,并对每个模块独立地进行汇编和调试。程序模块的汇编及调试一般是从低层到高层逐步进行的,当所有模块汇编完毕后,通过连接程序连接成为一个完整的可执行程序。 (1)NAME和END模块定义伪操作命令

定义一个模块,一般需要对模块命名的伪操作命令,它的语句格式如下: [NAME<模块名>] ?

END[标号]

(2)PUBLIC全局符号伪操作命令

该命令说明一张符号表,表示该模块中定义的哪些符号常量、变量、符号以及过程名可以被其他模块所引用。语句格式如下: PUBLIC<符号表>

(3)EXTRN外部符号伪操作命令 该命令同样说明一张符号表,表示本模块中需要引用但却是在其他模块中定义并说明为PUBLIC的那些符号。这些符号可以是常量、变量、符号以及过程名。语句格式如下:

EXTRN<符号:类型>[,?] (4)INCLUDE伪操作命令

该命令可以把源文件插入当前的源文件一起汇编,其语句格式如下: INCLUDE<文件名>

2.5 汇编语言程序设计的基本方法

汇编语言的程序结构有4种,即顺序结构、分支结构、循环结构和子程序结构。下面分别介绍这4种结构的程序设计方法。 2.5.1顺序程序设计

顺序结构的程序在执行中无分支、无转移、无循环,完全按照顺序逐条执行每一条指令。

2.5.2 分支程序设计

分支结构的程序比顺序结构的程序有较高的执行效率,因为它不需要逐条执行程序中的每一条指令,而是可以根据不同的情况和条件自动做出判断,跳过若干指令,并转向相应的处理程序。

分支程序常用的结构形式有两种:一种是比较/测试结构,另一种是分支表(跳转表)结构。

2.5.3 循环程序设计 1.循环程序的结构与组成

循环程序一般应包括以下5个组成部分。 (1)初始化部分; (2)工作部分; (3)修改部分; (4)控制部分; (5)结束处理部分。 2.控制循环的方法 (1)计数控制法; (2)条件控制法; 2.5.4 子程序设计 1.子程序的调用和返回

2.主程序和子程序之间的信息传递 (1)约定寄存器传递信息; (2)约定存储单元传递信息; (3)约定堆栈传递信息。 3.保护现场和恢复现场

子程序中一般要进行现场保护和现场恢复的操作。这种操作可以通过进栈和出栈指令实现。在进入子程序时首要将有关寄存器的内容保存在堆栈中,而当子程序执行完毕返回主程序之前,再把保存的内容弹入相应的寄存器。 2.5.5 ROM BIOS中断调用和DOS系统功能调用 80x86微机系统通过ROM BIOS和DOS提供了丰富的中断服务子程序,用户可以非常方便地调用,从而给程序设计带来了很大的方便。

1.DOS系统功能调用

系统功能调用是DOS为程序员提供的80多个常用子程序,使用方法是: (1)在AH寄存器中设置调用子程序的功能号; (2)根据所调用功能号设置入口参数; (3)用INT 21H指令转入子程序入口;

(4)子程序运行完毕后,按规定取得出口参数。

第三章 PC组成原理与接口技术 3.1 主板与芯片组 3.1.1 主板概述

主板又称为母板(motherboard),是PC的核心部件。主板上通常包含下列各个部分:芯片组、CPU调压器、ROM BIOS、CMOS RAM/RT、电池等器件及CPU插座(或插槽)、存储器(内存)插槽、总线插槽等连接器

CPU和存储器(内存条)分别通过主板上的CPU插座和存储器插槽安装在主板上。PC常用外围设备通过扩充卡(声音卡、显卡等)或主板上的I/O接口与主板相连。扩充卡通过扩充卡上的印刷插头插在主板上相关的I/O总线插槽中。 3.1.2 芯片组

芯片组(chipset)是PC各组成部分相互连接和通信的枢钮。主板上所有的存储器控制功能和I/O控制功能几乎都集成在芯片组内,它既实现了PC总线的功能,又提供了各种I/O接口及相关的控制。离开芯片组,处理器无法和内存、适配卡、外转设备等交换信息。

芯片组主要由两块超大规模集成电路组成:北桥芯片(north bridge chip)和南桥芯片(south bridge chip)。

北桥芯片主要连接pentium4微处理器、DDR内存储器、AGP或PCI-Express×16显卡,并与南桥芯片相连。南桥芯片主要提供PCI总线槽,USB、硬盘接口、局域网口、音频解码器等,并与BIOS ROM相连。 3.2 主板BIOS

主板BIOS是指固化在PC主板上的ROM芯片中的一组程序。系统加电后首先装载这组程序,然后装载操作系统。简单地说,大部分PC中的ROM BIOS有4个主要功能。 1.主板BIOS的主要功能

(1)POST(power on self test,加电自检)程序 (2)CMOS SETUP(或BIOS SETUP)程序 (3)Bootstrap Loader(系统自举装入程序)

(4)基本的I/O设备驱动程序和底层中断服务程序 2.主板BIOS芯片及主板BIOS升级 由于Flash ROM只需利用其工作电压就可以很方便地更新其存储内容,因此,1997年以后推出的主板,存放主板BIOS和ROM芯片基本上均采用Flash ROM。这样,不必更换ROM芯片就可以更新主板ROM中的内容。 3.2.1 CMOS RAM

CMOS RAM本身不存放程序,对CMOS RAM中各项参数的设定是通过执行主板BIOS中的CMOS SETUP程序完成的。而接通计算机电源(或接Reset复位键)时,首先执行的POST自诊断测试程序是通过读取CMOS RAM中的内容来识别系统硬件的配置,并根据这些配置信息对系统中各部件进行测试和初始化的。CMOS RAM的后备电池使存储在CMOS RAM中的信息在PC关机后不会丢失。 3.3 总线


三级pc知识点大总结-精华版(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:念奴娇赤壁怀古说课稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: