微机原理与接口技术知识点总结 联系客服

发布时间 : 星期六 文章微机原理与接口技术知识点总结更新完毕开始阅读ccbac2bcf90f76c661371abb

微机原理与接口技术

2、循环控制指令

?用在循环程序中以确定是否要继续循环。 ?循环次数通常置于CX中。

?转移的目标应在距离本指令-128~+127的范围之内。 ?循环控制指令不影响标志位。

(1)LOOP

格式:LOOP label 操作:(CX)-1→CX;

若(CX)≠0,则转至label处执行;

否则退出循环,执行LOOP后面的指令。 LOOP指令与下面的指令段等价: DEC CX JNZ label

3、过程调用指令 (1)调用指令CALL

一般格式:CALL sub ;sub为子程序的入口

4、中断指令

(1)INT n 执行类型n的中断服务程序,N=0~255

(七)处理器控制指令 1、标志位操作 (1)CF设置指令

CLC 0→CF STC 1→CF CMC CF变反 (2)DF设置指令

CLD 0→DF (串操作的指针移动方向从低到高)

STD 1→DF (串操作的指针移动方向从高到低) (3)IF设置指令 CLI 0→IF (禁止INTR中断) STI 1→IF (开放INTR中断)

2、 HLT(halt)

执行HLT指令后,CPU进入暂停状态。

第三章 汇编语言及编程

计算机语言一般分为三种不同的层次:机器语言、汇编语言、高级语言。其中汇编语言,执行速度快、保密性好,可读性差,可移植性差,编程麻烦;高级语言,执行速度慢、保密性差、可读性好、可移植性好、编程简单。

一、伪指令

CPU指令与伪指令之间的区别:

13 / 24

微机原理与接口技术

(1)CPU指令是给CPU的命令,在运行时由CPU执行,每条指令对应CPU的一种特定的操作。而伪指令是给汇编程序的命令,在汇编过程中由汇编程序进行处理。

(2)汇编以后,每条CPU指令产生一一对应的目标代码;而伪指令则不产生与之相应的目标代码。

1、数据定义伪指令

(1)数据定义伪指令的一般格式为: ?[变量名] 伪指令 操作数[,操作数…] DB 用来定义字节(BYTE)

DW 用来定义字(WORD) DD 用来定义双字(DWORD)

(2)操作数的类型可以是: ①常数或常数表达式

?例如: DATA_BYTE DB 10,5,10H DATA_WORD DW 100H,100,-4 DATA_DW DD 2*30,0FFFBH 可以为字符串(定义字符串最好使用DB) ?例如:char1 DB ?AB? 也可以为变量

还可以为?号操作符

例如:X DB 5,?,6

?号只是为了给变量保留相应的存储单元,而不赋予变量某个确定的初值。 重复次数:N DUP(初值[,初值…]) ?例如:ZERO DB 2 DUP(3,5)

XYZ DB 2 DUP(0,2 DUP(1,3),5)

在伪操作的操作数字段中若使用$,则表示的是地址计数器的当前值。

2、补充内容:

(1)类型 PTR 地址表达式例如:MOV BYTE PTR [BX],12H

INC BYTE PTR [BX]

注意:单操作数指令,当操作数为基址、变址、基+变的时候必须定义

3、符号定义伪指令 (1)EQU

格式:名字 EQU 表达式

EQU伪指令将表达式的值赋予一个名字,以后可用这个名字来代替上述表达式。 例:CONSTANT EQU 100

NEW_PORT EQU PORT_VAL+1

(2) =(等号)

与EQU类似,但允许重新定义 例:

14 / 24

微机原理与接口技术

EMP=7 ;值为7 ┇ EMP=EMP+1 ;值为8

(3)LABEL

LABEL伪指令的用途是定义标号或变量的类型 格式:名字 LABEL 类型

变量的类型可以是BYTE,WORD,DWORD。标号的类型可以是NEAR或FAR

4、段定义伪指令

与段有关的伪指令有:

SEGMENT、ENDS、ASSUME、ORG (1)段定义伪指令的格式如下:

段名 SEGMENT [定位类型] [组合类型] [’类别’]

段名 ENDS

SEGMENT和ENDS

这两个伪指令总是成对出现,二者前面的段名一致。二者之间的删节部分,对数据段、附加段及堆栈段,一般是符号、变量定义等伪指令。对于代码段则是指令及伪指令。此外,还必须明确段和段寄存器的关系,这可由ASSUME语句来实现。

(2)ASSUME 格式:

ASSUME 段寄存器名:段名[,段寄存器名:段名[,…]]

ASSUME伪指令告诉汇编程序,将某一个段寄存器设置为某一个逻辑段址,即明确指出源程序中逻辑段与物理段之间的关系。

(3)ORG

伪指令ORG规定了段内的起始地址或偏移地址,其格式为: ORG <表达式>

表达式的值即为段内的起始地址或偏移地址,从此地址起连续存放程序或数据。

5、汇编程序的一般结构 汇编语言源程序的语句结构一般由标号、操作码、操作数、注释4部分组成。如: 指令语句: 【标号:】 助记符(操作码) 【操作数】 【;注释】 伪指令语句: 【名字】 定义符(操作码) 【操作数】 【;注释】 DATA SEGMENT …

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA BGN: MOV AX ,DATA MOV DS,AX

15 / 24

微机原理与接口技术

….

MOV AH,4CH INT 21H CODE ENDS END BGN 二、程序设计

1、 顺序程序的设计

例1 对于三个无符号数86H、34H、21H,编写86H*34H-21H的程序。 DATA SEGMENT

NUM DB 86H,34H,21H RESULT DW ? DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,NUM LEA DI,RESULT MOV AL,[SI] MOV BL,[SI+1]

MUL BL

MOV BL,[SI+2] MOV BH,0 SUB AX,BX MOV [DI],AX MOV AH,4CH INT 21H CODE ENDS END START 2、 分支程序的设计

例2 将数据区中以字节变量BUFFER为首地址的100 个单元清0。 DATA SEGMENT

BUFFER DB 100 DUP(?) COUNT DB 100 DATA ENDS

STACK SEGMENT

DW 32 DUP(?) STACK ENDS

CODE SEGMENT

16 / 24