32位微机原理考试重点

32位微机原理考试重点
32位微机原理考试重点

1,原码:0表示“+”,1表示“-”,数值位与真值数值位相同。

反码:正数的反码与原码表示相同。负数反码符号位为1,数值位为原码数值各位取反。

补码:正数的补码表示与原码相同。负数补码的符号位为1,数值位等于反码加1。[X]补= [X]反+1 负数直接求补: 从最低位起,到出现第一个1以前原码中的数字不变,以后逐位取反,但符号位不变。

2,各种编码方法的表数范围:

n+1位二进制编码x表示的整数范围:

原码、反码:-2n<x<2n

补码:-2n≤x<2n

8位原码、反码的表数范围是-127~+127,补码的表数范围是-128~+127;16位原码、反码的表数范围是-32767~+32767,补码的表数范围是-32768~+32767

3,原码、反码、补码表示小结:

正数的原码、反码、补码表示均相同,

符号位为0,数值位同数的真值。

零的原码和反码均有2个编码,补码只有1个编码。

负数的原码、反码、补码表示均不同,

符号位为1,数值位:原码为数的绝对值

反码为每一位均取反码

补码为反码再在最低位+1

由[X]补求[-X]补:逐位取反(包括符号位),再在最低位+1

4,进位标志CF(Carry Flag):运算结果的最高位产生进位或借位时,或循环指令也会影响该位。

奇偶标志PF(Parity Flag):运算结果的低8位中所含1的个数为偶数个,则该位置1。

辅助进位标志AF(Auxiliary Carry Flag):加减法运算时,如果第3位与第4位之间有进位或借位产生,则该位置1。一般用于BCD运算中是否进行十进制调整的判断依据。

零标志ZF(Zero Flag):运算结果为零,则该位置1。

符号标志SF(Sign Flag):与运算结果符号位(即最高位)相同。

溢出标志OF(Overflow Flag):当运算结果超出结果寄存器的表达范围时,该位置1。

跟踪标志TF(Trap Flag):控制CPU按调试的单步方式执行指令。

中断允许标志IF(Interrupt Enable Flag):控制CPU对外部可屏蔽中断(INTR)的响应。

当IF=1时,允许CPU响应外部可屏蔽中断;当IF=0时,禁止响应INTR,但不禁止CPU对非屏蔽中断(NMI)的响应。

方向标志DF(Direction Flag):用于控制串操作指令中的地址变化方向。

5,立即寻址方式:8086 CPU指令系统中,有一部分指令所用的8位或16位操作数就在指令中提供,这种方式叫立即寻址方式。

例如:

MOV AL,80H;将十六进制数80H送入AL

MOV AX,1090H;将1090H送AX,AH中为10H,AL中为90H

寄存器寻址方式:如果操作数在CPU的内部寄存器中,那么寄存器名可在指令中指出。

这种寻址方式就叫寄存器寻址方式。

例如:

INC CX;将CX的内容加1

MOV AX, BX ;将BX内容送AX,BX内容不变

ROL AH,1;将AH中的内容不带进位循环左移一位

采用寄存器寻址方式的指令在执行时,操作就在CPU内部进行,不需要使用总线周期,执行速度快。

直接寻址方式:使用直接寻址方式,数据在存储器中,存储单元有效地址EA由指令直接指出,所以直接寻址是对存储器进行访问时最简单的方式

例如:MOV AX, [ 2000H ]

寄存器间接寻址方式:采用寄存器间接寻址方式时,操作数一定在存储器中,存储单元的有效地址由寄存器指出。这些寄存器可以是BX,BP,SI和DI,即有效地址等于其中某一个寄存器的值

寄存器相对寻址方式(直接变址寻址):操作数有效地址EA为基址或变址寄存器内容与指令中指定位移量之和,操作数在存储器中。可用寄存器及其对应的默认段情况与寄存器间接寻址方式相同。

基址变址寻址方式:用这种寻址方式时,操作数的有效地址等于基址寄存器的内容加上一个变址寄存器的内容,16位寻址时,基址寄存器可用BX和BP,变址寄存器可用SI 和DI;32位寻址时,基址寄存器可用任何32位通用寄存器,变址寄存器可用除ESP 以外的32位通用寄存器。

用MOV指令实现两内存字节单元内容的交换

1、MOV BL, [2035H];

MOV CL, [2045H];

MOV [2045H], BL;

MOV [2035H], CL;

2、MOV AL, [2035H];

XCHG AL, [2045H];

MOV [2035H], AL;

测试某状态寄存器(端口号27H)的第2位是否为1

IN AL, 27H

TEST AL, 00000100B

JNZ ERROR ;若第2位为1,转ERROR处理

设数据段:ADDR1 DF 1234567890ABH

则LES EBX,ADDR1

指令执行后(ES)=1234H, (EBX)=567890ABH

【例题】实现两个无符号双字加法运算。设目的操作数存放在DX和AX寄存器中,其中DX存放高位字。源操作数存放在BX、CX中,其中BX存放高位字。如指令执行前(DX)=0002H,(AX)=0F365H,(BX)=0005H,(CX)=0E024H

指令序列为ADD AX,CX

ADC DX,BX

则第一条指令执行后,(AX)=0D389H,SF=1,ZF=0,CF=1,OF=0

第二条指令执行后,(DX)=0008H,SF=0,ZF=0,CF=0,OF=0

【例题】比较AL的内容数值大小。

CMP AL,100 ;(AL)-100

JB BELOW ;(AL)<100,转到BELOW处执行

SUB AL,100 ;(AL)>=100,(AL)-100→AL

INC AH ;(AH)+1→AH

BELOW:…

【例题】设x、y、z均为双字长数,它们分别存放在地址为X,X+2;Y,Y+2;Z,Z+2的存储单元中,存放时高位字在高地址中,低位字在低地址中,编写指令序列实现w ←x+y+24 – z,并用w和w+2单元存放运算结果。

MOV AX,X

MOV DX,X+2

ADD AX,Y

ADC DX,Y+2

ADD AX,24

ADC DX,0

SUB AX,Z

SBB DX,Z+2

MOV W,AX

MOV W+2,DX

【例题】无符号数0A3H与11H相乘。

MOV AL,0A3H ;(AL)=0A3H

MOV BL,11H ;(BL)=11H

MUL BL ;(AX)=0AD3H

【例题】若(AL)= 0B4H,(BL)=11H,求执行指令IMUL BL 和MUL BL 后的乘积值。

(AL)= 0B4H为无符号数的180D,带符号数的-76D

(BL)=11H为无符号数的17D,带符号数的17D

则执行IMUL BL 的结果为(AX)=0FAF4H =-1292D,CF=OF=1

执行MUL BL 的结果为(AX)= 0BF4H = 3060D,CF=OF=1

【例题】写出实现无符号数0400H/0B4H运算的程序段。

MOV AX,0400H ;(AX)=0400H

MOV BL,0B4H ;(BL)=0B4H

DIV BL ;商(AL)=05H,余数(AH)=7CH

【例题】写出实现有符号数0400H /0B4H运算的程序段。

MOV AX,0400H ;(AX)=0400H

MOV BL,0B4H ;(BL)=0B4H

IDIV BL ;(AL)=0F3H,(AH)=24H

算术运算综合举例【例3-36】

计算:(C-120 + A*B) / C,保存商和余数到X和Y中,其中A、B、C、X和Y都是有符号的字变量。编制程序如下:

MOV AX, C

SUB AX, 120

CWD

MOV CX, DX

MOV BX, AX ;(CX, BX)←(DX, AX)

MOV AX, A

IMUL B ;(DX, AX)←A*B

ADD AX, BX ;计算32位二进制之和

ADC DX, CX

IDIV C ;AX是商,DX是余数

MOV X, AX ;保存商到指定单元

MOV Y, DX

课堂练习

计算:(V-(X*Y+Z-540))/X,其中X,Y,Z,V均为16位带符号数,已分别装入X,Y,Z,V单元中,上式计算结果的商存入AX,余数存入DX寄存器。编制程序如下:mov ax, x

imul y

mov cx, ax

mov bx, dx

mov ax, z

cwd

add cx, ax

adc bx, dx

sub cx, 540

sbb bx, 0

mov ax, v

cwd

sub ax, cx

sbb dx, bx

idiv x

【例题】压缩BCD码的加法运算。

MOV AL,68H ;(AL)=68H,表示压缩BCD码68

MOV BL,28H ;(BL)=28H,表示压缩BCD码28

ADD AL,BL ;二进制加法:(AL)=68H+28H=90H

DAA ;十进制调整:(AL)=96H

;实现压缩BCD码加法:68+28=96

【例题】压缩BCD码的减法运算。

MOV AL,68H ;(AL)=68H,表示压缩BCD码68

MOV BL,28H ;(BL)=28H,表示压缩BCD码28

SUB A L,BL ;二进制减法:(AL)=68H-28H=40H

DAS ;十进制调整:(AL)=40H

;实现压缩BCD码减法:68-28=40

【例题】AND AL,77H ;将AL中第3位和第7位清零。

AND AX,BX ;两个寄存器逻辑与

AND AL,1111 0000B ;屏蔽AL寄存器低4位

AND MEM-BYTE,AL;存储单元和寄存器逻辑与

例题】

OR AL,88H ;将AL寄存器中第3位和第7位置1

OR BX,0C000H ;将BX中第15位和第14位置1

【例题】逻辑非运算。

MOV AX,878AH ;(AX)=878AH

NOT AX ;(AX)=7875H

NOT WORD PTR[1000H];将1000H和1001H两单

;元中的内容求反码,再送回这两单元中

【例题】测试AX中的第12位是否为0,不为0则转L。

TEST AX,1000H

JNE L / JNZ L

例3-54:(BX)=84F1H,把(BX) 中的16 位数每 4 位压入堆栈

MOV CH, 2 ; 循环次数

MOV CL, 4 ; 移位次数

NEXT: ROL BX, CL

MOV AH, BL

AND AH, 0FH

ROL BX, CL

MOV AL, BL

AND AL, 0FH

PUSH AX

DEC CH

JNZ NEXT

例题:设BLOCK数据块中存储有正数和负数,试编写程序将正负数分开,分别存放在Dplus和Dminus开始的存储区域

mov si,offset block

mov di,offset dplus

mov bx,offset dminus

mov ax,ds

mov es,ax ;数据都在一个段中,所以设置es=ds

mov cx,count ;cx←字节数

cld

go_on: lodsb ;从block取出一个数据

test al,80h ;检测符号位,判断是正是负

jnz minus ;符号位为1,是负数,转向minus

stosb ;符号位为0,是正数,存入dplus

jmp again ;程序转移到again处继续执行

minus: xchg bx,di

stosb ;把负数存入dminus

xchg bx,di

again: loop go_on ;字节数减1

例:检验一段被传送过的数据是否与源串完全相

同,程序如下:

CLD

MOV CX,100初始化

MOV SI,2400H

MOV DI,1200H;

REPE CMPSB;串比较,直到ZF=0或CX=0

JZ EQQ

DEC SI

MOV BX,SI;第一个不相同字节偏移地址→BX

MOV AL,[SI];第一个不相同字节内容→AL

JMP STOP

EQQ:MOV BX,0;两串完全相同,BX=0

STOP:HLT

例题:在某字符串中查找是否存在“$”字符。若存在,则将“$”字符所在地址送入BX寄存器中,否则将BX寄存器清“0”。程序如下:

CLD;清除方向标志DF

MOV DI,0100H;送目标串首元素偏移地址

MOV CX,100 ;字串长度

MOV AL,′$′;关键字→AL

REPNE SCASB;找关键字

JNZ ZER ;判断是否找到

DEC DI

MOV BX,DI;关键字所在地址→BX

JMP ST0

ZER:MOV BX,0;未找到,0→BX

ST0:HLT

例题:比较两个长度为count的字符串是否完全相同,若相同置al=0,不相同置al=0ffh

mov si,offset string1

mov di,offset string2

mov cx,count

cld

mov al,0ffh ;标记初始为不同

mov al,0 ;字符串相等,设置00h

output:mov result,al ;输出结果标记

?例3.61 若AL最高位为0,设置(AH)=0;若AL最高位为1,则设置(AH)=FFH。

即编程实现符号扩展指令CBW功能

方法一:用JZ指令实现。

test al, 80h ;测试最高位

jz set0 ;最高位为0则转到set0

mov ah, 0ffh ;最高位为1,则将AH置0FFH

jmp next ;无条件转向next

set0: mov ah, 0

next:…

方法二:用JNZ指令实现。

test al, 80h ;测试最高位

jnz set1 ;最高位为1则转到set1

mov ah, 0h ;最高位为0,则将AH置0

jmp next ;无条件转向next

set1: mov ah, 0ffh

next:…

?例3.62 计算|X-Y|,X和Y是存放于X单元和Y单元的16位操作数,结果存入

result

mov ax, X

sub ax, Y ;X-Y送AX,下面求绝对值

jns next ;绝对值为正,不需处理,转向next保存结果

neg ax ;绝对值为负,进行求补得到绝对值

next: mov r esult, ax ;保存结果

?例3.63 编写程序段判断DX中1的个数

xor al, al

again: test dx, offffh ;等价于cmp bx,0

je next

shl dx, 1

jnc again

inc al

jmp again

next: …;AL保存1的个数

例3.64 比较AX和BX中两个无符号数的大小,将较小的存放到AX中cmp ax, bx ;比较ax和bx

JB next ;若ax<bx,则转移到next

xchg ax, bx ;若ax≥bx,则两者交换

next: …

例3.65 比较AX和BX中两个有符号数的大小,将较小的存放到AX中cmp ax, bx ;比较ax和bx

JL next ;若ax<bx,则转移到next

xchg ax, bx ;若ax≥bx,则两者交换

next: …

例3.66 a、b是双精度数,分别存于DX,AX 及BX,CX 中,a > b时转L1,否则转L2

cmp dx, bx ;比较dx和bx

JG l1 ;若dx>bx,则转移到l1

JL l2 ;若dx<bx,则转移到l2

cmp ax, cx ;若dx=bx,则比较ax和cx

JA l1 ;若ax>cx,则转移到l1

l2: ……

l1: ……

例3-67:求首地址为ARRAY 的n个字之和,结果存入sum单元

mov cx, n ;将计数值n送CX

xor ax, ax ;累加器AX清零

xor dx, dx ;DX清零

xor si, si ;SI清零

again: add ax, array[si] ;将下一个数据累加到AX

adc dx, 0 ;将产生的进位累加到DX

add si, 2 ;SI加2,指向下一个数据

loop again ;若CX不为0,继续循环

mov sum, ax ;结果低16位送sum单元

例4.21】

(1)编写程序把BX 中的二进制数以十六进制数的形式显示在屏幕上。

CODE SEGMENT

ASSUME CS:CODE

START: MOV CH, 4 ;设置循环初值为4

ROTAT: MOV CL, 4

ROL BX, CL ;BX循环左移4位

MOV AL, BL

AND AL, 0FH ;把最右面要显示的4位取到AL中

ADD AL, 30H ;将其加30H转换为ASCII码

CMP AL, 3AH ;判断是否大于9

JL PRINT ;“0”~“9”,转向PRINTIT直接显示

ADD AL, 7H ;“A” ~“F”,ASCII 值再加7

PRINT: MOV DL, AL ;2号功能调用,显示该字符

MOV AH, 2

INT 21H

DEC CH

JNZ ROTAT ;若循环次数未到,则继续循环

MOV AH, 4CH

INT 21H ;程序结束,返回DOS

CODE ENDS

END START

【例4.24】数据段中从BUF单元开始的数据区内存放着一组有符号字数据,其中第一个单元存放数组元素个数,请编一程序求出该数组中的最大值、最小值及总和,并分别存入MAX、MIN、SUM单元中

DATA SEGMENT

BUF DW 12

DW 5,-4,0,3,100,-51,69,-21,-5,255,33,150

MAX DW ?

MIN DW ?

SUM DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX, DATA

MOV DS, AX

MOV SI, 2 ;初始化SI、AX、BX、DX

MOV AX, BUF[SI]

MOV BX, BUF[SI]

MOV DX, BUF[SI]

MOV CX, BUF ;初始化循环计数器CX

DEC CX

L: ADD SI, 2

CMP BX, BUF[SI] ;比较

JL LESS

CMP DX, BUF[SI]

JG GREATER

JMP S

LESS: MOV BX, BUF[SI] ;大数送入BX

JMP S

GREATER: MOV DX, BUF[SI] ;小数送入DX

S: ADD AX, BUF[SI] ;求累加和,送入AX

LOOP L

MOV MAX,BX ;最大值、最小值及总和分别存

MOV MIN,DX ;入MAX、MIN、SUM单元

MOV SUM,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

例4.25】字符串STRING以回车符作为结束标志,编程统计该字符串的长度DATA SEGMENT

LEN DB ?

STRING DB …computer science and technology?,0DH

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, ES:DATA

START: MOV AX, DATA

MOV DS, AX

MOV ES, AX

LEA DI, STRING ;串的首地址送入DI

MOV DL, 0 ;置串长度初值为0

MOV AL, 0DH ;串结束标志送入AL

AGAIN: SCASB ;搜索串

JE DONE ;找到结束标志,转向DONE结束

INC DL ;否则,串长度加1

JMP AGAIN

DONE: MOV LEN,DL ;串长度送入LEN

MOV AH, 4CH

INT 21H

CODE ENDS

END START

【例4.20】从键盘接收两个有符号十进制数,并求它们的和,再将结果以有符号十进制数的形式在屏幕上显示输出。

DATA SEGMENT

MES1 DB …input the first number:$?

MES2 DB …input the second number:$?

MES3 DB …the sum is:$?

X DW ?

Y DW ?

SUM DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET MES1

MOV AH,9

INT 21H ;显示输入提示信息

CALL READ ;调用子程序READ,输入第一个数

MOV X,AX ;将输入的第一个数送入变量X

CALL CRLF ;调用子程序CRLF

MOV DX,OFFSET MES2

MOV AH,9

INT 21H ;显示输入提示信息

CALL READ;调用子程序READ,输入第二个数

MOV Y,AX ;将输入的第二个数送入变量Y

ADD AX,X ;两数相加

MOV SUM,AX ;和送到SUM,入口参数

MOV DX,OFFSET MES3

MOV AH,9

INT 21H ;显示输出提示信息

CALL WRITE ;调用子程序WRITE,显示结果

MOV AH,4CH

INT 21H

READ PROC NEAR ;输入有符号十进制数的子程序READ

PUSH BX

PUSH CX

PUSH DX

XOR BX,BX ;用BX保存结果

XOR CX,CX ;正负标志,0为正,-1为负

MOV AH,1 ;输入一个字符

INT 21H

CMP AL, …+?;比较是否为“+”

JZ READ1 ;是“+”,转向READ1继续输入

CMP AL,…-?;否则,比较是否为“-”JNZ READ2 ;不是“+”和“-”,转向READ2

MOV CX,-1 ;是“-”,设置-1标志

Read1: …

Read2: …

Read3: …

Read4: …

READ ENDP

READ1: MOV AH,1 ;继续输入字符

INT 21H

READ2: CMP AL,…0?;是否在0~9之间

JB READ3 ;数据结束

CMP AL,…9?

JA READ3

SUB AL,30H ;在0~9之间,转换为对应数值

SHL BX,1 ;用移位指令实现已输入数值乘10

MOV DX,BX ;即:(BX)←(BX)×10

SHL BX, 1

SHL BX, 1

ADD BX, DX

MOV AH, 0 ;已输入数值乘10+新输入值

ADD BX, AX ;相加

JMP READ1 ;继续输入字符

READ3: CMP CX, 0 ;判断该数值正负

JZ READ4 ;是正数,转向READ4

NEG BX ;是负数,进行求补

READ4: MOV AX, BX ;出口参数,数值送入AX

POP DX

POP CX

POP BX

RET ;子程序返回

READ ENDP

WRITE PROC NEAR ;显示有符号十进制数的子程序WRITE

PUSH AX

PUSH BX

PUSH DX

MOV AX, SUM ;取出要显示的数据

TEST AX, AX ;判断零、正数或负数

JNZ WRITE1

MOV DL, …0?;是零,显示“0”后退出

MOV AH, 2

INT 21H

JMP WRITE5

WRITE1:JNS WRITE2;;是正数,转向WRITE2

MOV BX, AX ;是负数,AX数据暂存于BX以免被修改 MOV DL, …-? ;显示“-”

MOV AH, 2

INT 21H

MOV AX, BX ;恢复AX数据

NEG AX ;数据求补(求绝对值)

WRITE2:MOV BX, 10

PUSH BX ;10压入堆栈,作为退出标志

WRITE3:CMP AX, 0 ;数据(商)是否为零

JZ WRITE4 ;为零转向显示

SUB DX, DX ;扩展被除数(DX,AX),DX清零

DIV BX ;数据除以10:(DX,AX)÷10

ADD DL, 30H ;余数(0~9)转换为ASCII码

PUSH DX ;数据各位先低位后高位压入堆栈

JMP WRITE3

WRITE4:POP DX ;数据各位先高位后低位弹出堆栈

CMP DL, 10 ;是结束标志10,则退出

JE WRITE5

MOV AH, 2 ;进行显示

INT 21H

JMP WRITE4

WRITE5:POP DX

POP BX

POP AX

RET ;子程序返回

WRITE ENDP

CRLF PROC NEAR ;使光标回车换行的子程序PUSH AX

PUSH DX

MOV AH, 2

MOV DL, 0DH

INT 21H ;显示回车符

MOV DL, 0AH

INT 21H ;显示换行符

POP DX

POP AX

RET

CRLF ENDP

CODE ENDS

END START

(1) 设计要求: 在源程序中设置数据段、堆栈段及代码段。在数据段中定义8个字节数据,把这些数据转换成十六进制数的ASCII码存在上述数据之后,然后在屏幕上显示这些数据。显示数据用DOS功能2号调用,每个数据用空格分隔。

1:NAME EX1 ;程序命名伪指令,程序名为EX1

2:PAGE 50,70;列表文件每页50行每行70字符

3:;----------------------------------------------------

4:DAT SEGMENT PARA ′DAT′

5:A1 DB 12H,34H,56H,78H,9AH

6:DB0BCH,0DEH,0F0H

7:B1=$-A1 ;赋值伪指令,求A1(符号地址)到当

前汇编指针地址($)的字节数

8:B2=B1*2 ;求2倍B1

9:A2 DB B2 DUP (?); 数据重复定义伪指令,定

义ASCII码字符区

10:DAT ENDS

11:;----------------------------------------------------

11:;----------------------------------------------------

12:STAC SEGMENT PARA STACK ′STA′

13:STA1 DW 100DUP(?)

14:STAC ENDS

15:;----------------------------------------------------

16:CODE SEGMENT PARA ′CODE′

17:ASSUME CS:CODE,DS:DAT

18:ASSUME SS:STAC,ES:DAT

19:STAR PROC FAR

20:PUSH DS

21:XOR AX,AX

22:PUSH AX

23:MOV AX,DAT

24:MOV DS,AX ;段寄存器赋值

25:MOV ES,AX

26:LEA SI,A1 ;取有效地址

27:LEA DI,A2

28:MOV CX,B1 ;循环次数

29:G1:MOV BL,2 ;每个字节处理两次

30:MOV AL,[SI];被处理的字节送AL

31:MOV BH,AL ; AL暂存到BH

32:PUSH CX

33:MOV CL,4

34:ROR AL,CL ;循环右移4位

35:POP CX

36:G2:AND AL,0FH ;取AL低4位,高4位清零

37:ADD AL, 30H

38:CMP AL, 3AH

JB AA

39:ADD AL,7

40:AA: MOV[DI],AL ;处理完毕送目标地址

41:INC DI

42:MOV AL,BH

43:DEC BL

44:JNZ G2

45:INC SI

46:LOOP G1 ;CX-1,若CX≠0则返回G1

47:MOV SIOFFSET A2;A2的偏移地址送SI寄存器

48:MOV CX,B2

49:CALL P1

50:RET

显示ASCII码字符子程序如下:

51:P1PROC

52:MOV BL,2

53:G:MOV DL,[SI]

54:MOV AH,2

55:INT21H

56:INC SI

57:DEC BL

58:JNZ T

59:MOV DL,′′;加空格

60:MOV AH,2

61:INT21H

62:MOV BL,2

63:T:LOOP G ;cx-1循环处理

64:RET

65:P1ENDP

66:CODE ENDS

67:END STAR

例9-3】利用8255A的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。试完成相应的软硬件设计。(CPU为8088)

说明:

?由PC0充当打印机的选通信号,通过对PC0的置位/复位来产生选通。同时,由PC7来接收打印机发出的“BUSY”信号作为能否输出的查询。

?8255A的控制字为:10001000 即88H

?A口方式0,输出;C口高位方式0输入,低位方式0输出

?PC0置位:00000001 即01H

?PC0复位:00000000 即00H

?8255A的4个口地址分别为:00H,01H,02H,03H。

?DADA SEGMENT

BUFF DB 'This is a print program!','$'

?DATA ENDS

?CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET BUFF

MOV AL,88H ;8255A初始化,A口方式0,输出

OUT 03H,AL ;C口高位方式0输入,低位方式0输出

MOV AL,01H;

OUT 03H,AL ;使PC0置位,即使选通无效

WAIT:IN AL,02H

TEST AL,80H ;检测PC7是否为1即是否忙

JNZ WAIT ;为忙则等待

MOV AL,[SI]

CMP AL,'$' ;是否结束符

JZ DONE ;是则输出回车

OUT 00H,AL ;不是结束符,则从A口输出

MOV AL,00H

OUT 03H,AL

MOV AL,01H

OUT 03H,AL ;产生选通信号

INC SI ;修改指针,指向下一个字符

JMP WAIT

DONE:MOV AL,0DH

OUT 00H,AL ;输出回车符

MOV AL,00H

OUT 03H,AL

MOV AL,01H

OUT 03H,AL ;产生选通

WAIT1:IN AL,02H

TEST AL,80H ;检测PC7是否为1

JNZ WAIT1 ;为忙则等待

MOV AL,0AH

OUT 00H,AL ;输出换行符

MOV AL,00H

OUT 03H,AL

MOV AL,01H

OUT 03H,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

?利用8086、8255A、输入开关、发光二极管,完成如下功能

?8255A的A口读取开关K1状态,B口连接发光二极管L1~L8。设开关闭合时读入

的值为1,开关断开时读入的值为0;端口输出为0时灯亮。若开关K1=0,发光二极管全灭;若开关K1=1,发光二极管从左向右循环点亮;

?(1)若用IOYa(有效时A15-A4的状态为000000101001)选通8255A,用8086

的A0 A1信号进行口选择,给出8255A的四个口地址。(2)为完成上述实验功能,请在图上画出接线图。

(3)编写汇编程序,完成上述功能。(主程序可调用延时1秒子程序DELAY和按任意键退出子程序BREAK,假定这两个子程序已存在,不需编写)

?(1)8255A的四个口地址:290H,291H,292H,293H

?(2)连线

MY_STACK SEGMENT

DB 100 DUP(?)

MY_STACK ENDS

MY_DATA SEGMENT

P8255_A DW 0290H

P8255_B DW 0291H

P8255_C DW 0292H

P8255_M DW 0293H

LA DB ?

MY_DATA ENDS

MY_CODE SEGMENT

ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK

START: MOV AX,MY_DATA

MOV DS,AX

MOV DX,P8255_M ;设置8255控制字

MOV AL,90H ;1001 0000

OUT DX,AL

MOV LA,FEH ;初值1111 1110

AA: MOV DX,P8255_A ;读取A口状态

IN AL,DX

TEST AL,01H

JZ ALL1 ;K1=0跳转ALL1

MOV AL,LA

ROL AL,1

MOV LA ,AL

MOV DX,P8255_B

OUT DX,AL ;输出

CALL DELAY

CALL BREAK

JMP AA

ALL1:MOV DX,P8255_B

MOV AL,0FFH ;灯全灭

OUT DX,AL

CALL DELAY

CALL BREAK

JMP AA

MY_CODE ENDS

END START

【例10-1】若要查询8251A接收器是否准备好,则可用下列程序段完成MOV DX,0FFF2H ;状态口

L:IN AL,DX ;读状态口

AND AL,02H ;查Dl=1?准备好了吗?

JZ L ;未准备好,则等待

MOV DX,0FFF0H ;数据口

IN AL,DX ;已准备好则输入数据

异步模式下的初始化程序举例

设8251A工作在异步模式,波特率系数(因子)为16,7个数据位/字符,偶校验,2个停止位,发送、接收允许,设端口地址为00E2H和00E4H。完成初始化程序

根据题目,可确定模式字为:11111010B即FAH,控制字为:00110111B 即37H,初始化程序如下:

?MOV AL,0FAH ;送模式字

?MOV DX,00E2H

?OUT DX,AL ;异步,7位/字符,偶校验,2个停止位

?MOV AL,37H ;设置控制字,使发送、接收允许,清出错标志

?OUT DX,AL ;有效

同步模式下的初始化程序举例

设端口地址为52H,采用内同步方式,2个同步字符(设同步字符为16H),偶校验,7位数据位/字符

根据题目,可确定模式字为:00111000B即38H,控制字为:10010111B即97H。

它使8251A对同步字符进行检索;同时使状态寄存器中的3个出错标志复位;使8251A的发送器、接收器启动;控制字还通知8251A,CPU当前已经准备好进行数据传输。初始化程序如下:

?MOV AL,38H ;设置模式字,同步,用2个同步字符,

?OUT 52H,AL ;7个数据位,偶校验

?MOV AL,16H

?OUT 52H,AL ;送同步字符16H

?OUT 52H,AL

?MOV AL,97H ;设置控制字,使发送器和接收器启动

?OUT 52H,AL

利用状态字进行编程的举例

先对8251A进行初始化,然后对状态字进行测试,以便输入字符。本程序段可用来输入80个字符。

8251A的控制和状态端口地址为52H,数据输入和输出端口地址为50H。字符输入后,放在BUFFER标号所指的内存缓冲区中。程序如下:

?MOV AL,0FAH ;设置模式字,异步,波特率因子为16,

?OUT 52H,AL ;用7个数据位,2个停止位,偶校验

?MOV AL,35H ;设置控制字,使发送器和接收器启动,

?OUT 52H,AL ;并清除出错指示位

?MOV DI,0 ;变址寄存器初始化

?MOV CX,80 ;计数器初始化,共收取80个字符

两台微型计算机通过8251A相互通信的举例

通过8251A实现相距较远的两台微型计算机相互通信。利用两片8251A通过标准串行接口RS-232C实现两台8086微机之问的串行通信,可采用异步或同步工作方式。两台微型机通过8251A通信举例(发送端初始化程序与发送控制程序)

?STT:MOV DX,8251A控制端口

?MOV AL,7FH

?OUT DX,AL ;将825lA定义为异步方式,8位数据,1位停止位

?MOV AL,11H ;偶校验,取波特率系数为64,允许发送。

?OUT DX,AL

?MOV DI,发送数据块首地址;设置地址指针

?MOV CX,发送数据块字节数;设置计数器初值

?NEXT:MOV DX,8251A控制端口

?IN AL,DX

?AND AL,01H ;查询TXRDY有效否?

?JZ NEXT ;无效则等待

?MOV DX,8251A数据端口、

?MOV AL,[DI];;向8251A输出一个字节数据。

?OUT DX,AL

?INC DI ;修改地址指针

?LOOP NEXT ;未传输完,则继续下一个

?HLT

?SRR:MOV DX,8251A控制端口

?MOV AL,7FH

?OUT DX,AL ;初始化8251A,异步方式,8位数据

?MOV AL,14H ;1位停止位,偶校验,波特率系数64,允许接收。

?OUT DX,AL

?MOV DI,接收数据块首地址;设置地址指针

?MOV CX,接收数据块字节数;设置计数器初值

?COMT:MOV DX,8251A控制端口

?IN AL,DX

?ROR AL,1 ;查询RXRDY有效否?

?ROR AL,1

?JNC COMT ;无效则等待

?ROR AL,1

?ROR AL,1 ;有效时,进一步查询是否有奇偶校验错。

?JC ERR ;有错时,转出错处理

?MOV DX,8251A数据端口

?IN AL,DX ;无错时,输入一个字节到接收数据块。

?MOV [DI],AL

?INC DI ;修改地址指针

?LOOP COMT ;未传输完,则继续下一个

?HLT

?ERR:CALL ERR-OUT

编写查询方式下的串口通讯程序,实现两台计算机简单通讯,在A机上键入的字符,在B机上显示;反之亦然

CODE SEGMENT

ASSUME CS:CODE

START PROC FAR

MOV DX, 3FBH

MOV AL, 80H

OUT DX, AL

MOV DX, 3F8H

MOV AL, 12

OUT DX, AL;除数低位

MOV DX, 3F9H

MOV AL, 0

OUT DX, AL;除数高位

MOV DX,3FBH

MOV AL,03H

OUT DX,AL;设置通讯字

MOV DX,3F9H

MOV AL,0

OUT DX,AL;中断允许字

MOV DX,3FCH

MOV AL,0AH

OUT DX,AL;Modem控制字

LP1: MOV AH, 1

INT 16H

JZ PP ;未按键

MOV AH,1

INT 21H ;键入字符

MOV DX,3F8H

OUT DX,AL ;发送PP: MOV DX,3FDH

IN AL,DX ;读状态

TEST AL,01H

JZ QQ ;未准备好

MOV DX,3F8H

IN AL, DX ;接收字符

MOV DL, AL

MOV AH, 2

INT 21H ;显示字符QQ: JMP LP1

RET

START ENDP

CODE ENDS

END START

微机原理及应用试题库(附答案)

《微机原理及应用》试题库 1. 8086和8088的引脚信号中, D 为地址锁存允许信号引脚。 A.CLK B.INTR C.NMI D.ALE 2. 下面的哪项是有效标识符: B A . 4LOOP: B. DELAYIS: C. MAIN A/B: D. GAMA$1: 3. 如图所示的三态输出电路,当 A 时,V B≈V DD。 A. E(ENABLE)=1, A=1 B. E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D. E(ENABLE)=0, A=0 4. 设(SS)=2000H,(SP)=0100H,(AX)=2107H,则执行指令PUSH AX 后,存放数据21H的物理地址是 D 。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的 A 。 A.符号地址B.物理地址C.偏移地址D.逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是 A 。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX,0 MOV BX,1 MOV CX,100 AA:ADD AX,BX INC BX LOOP AA HLT 执行后的结果:(AX)= ,(BX)= 。 A. 5050,99 B. 2500,100 C. 5050,101 D. 2550,102 8. 假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。 A.MOV V1, 20H B.MOV V1, V2 C.MOV AL, V1 D.MOV 2000H, V2 9. – 49D的二进制补码为 A 。

微机原理期末考试试卷(有答案)

丽水学院《微机原理》考试试卷 班级:___________ 姓名:___________学号:____________ 题号一二三四五六总分得分 得分 一、判断题(每题1分,共10分) 1、十六位微型机的含义是:这种机器能同时处理十六位二进制数。(√) 2、微机的字长愈长,计算精度愈高,指令处理功能愈强。(√) 3、MOV指令要影响标志位。(×) 4、JMP SHORT NEXT称为近转移。(×) 5、8086与8088在软件上不一定完全兼容。(×) 6、端口是位于主机与外设之间的总称。() 7、DMA是一种不需要CPU介入的高速数据传送。() 8、8253中的计数可以通过初始化设置成加计数或减计数。() 9、内部中断的优先权总是高于外部中断。() 10、两片8259A级连后可管理16级中断。() 得分 二、选择题(每题1分,共20分) 1、属于数据寄存器组的寄存器是_____C___。 A.AX,BX,CX,DS B.SP,DX,BP,IP C. AX,BX,CX,DX D.AL,DI,SI,AH 2、在8086和8088汇编语言中,一个字能表示的有符号数的范围是_____B___。 A.-32768≤n≤32768 B.-32768≤n≤32767 C.-65535≤n≤65535 D.-65536≤N≤65535 3、某数存于内存数据段中,已知该数据段的段地址为2000H,而数据所在单元的偏移地址为0120H,该数的在内存的物理地址为__B______。 A.02120H B.20120H C.21200H D.03200H 4、在8086/8088微机系统中,将AL内容送到I/O接口中,使用的指令是 ___D_____。 A.IN AL,端口地址 B.MOV AL,端口地址 C.OUT AL,端口地址 D.OUT 端口地址,AL 5、与十进制数58.75等值的十六进制数是__B______。 A.A3.CH B.3A.CH C.3A.23H D.C.3AH 6、将十六进制数FF.1转换成十进制数是__C______。 A.255.625 B.2501625 C.255.0625 D.250.0625 7、十进制负数-38的八位二进制补码是____D____。

微机原理与接口技术知识点复习总结汇编

第一章计算机基础知识 本章的主要内容为不同进位计数制计数方法、不同进位制数之间相互转换的方法、数和字符在计算机中的表示方法、简单的算术运算以及计算机系统的组成。下边将本章的知识点作了归类,图1为本章的知识要点图,图1.2为计算机系统组成的示意图。 本章知识要点 数制 二进制数(B) 八进制数(Q) 十六进制数(H) 十进制数(D) B) 码制 带符号数编码 奇偶校验码 字符编码 原码 反码 补码 ASCII码 BCD码 压缩BCD码 非压缩BCD码计算机系统组成 计算机系统组成硬件 主机 外部设备 中央处理器(CPU) 半导体存储器 控制器 运算器 ROM RAM 输入设备 输出设备 软件 系统软件 应用软件 操作系统:如DOS、Windows、Unix、Linux等 其他系统软件 用户应用软件 其他应用软件 各种计算机语言处理软件:如汇编、解释、编译等软件

第二章8086微处理器 本章要从应用角度上理解8086CPU的内部组成、编程结构、引脚信号功能、最小工作模式的系统配置、8086的存储器组织、基本时序等概念。下面这一章知识的结构图。 本章知识要点 Intel 8086微处理器 时钟发生器(8284) 地址锁存器(74LS373、8282) 存储器组织 存储器逻辑分段 存储器分体 三总线(DB、AB、CB) 时序 时钟周期(T状态) 基本读总线周期 系统配置 (最小模式) 8086CPU 数据收发器(8286、74LS245) 逻辑地址物理地址 奇地址存储体(BHE) 偶地址存储体(A0) 总线周期指令周期 基本写总线周期 中断响应时序 内部组成 执行单元EU(AX、BX、CX、DX、SP、BP、SI、DI、标志寄存器) 总线接口单元BIU(CS、DS、SS、ES、IP) 地址/数据 控制 负责地址BHE/S7、ALE 引脚功能(最小模式)地址/状态 数据允许和收发DEN、DT/R 负责读写RD、WR、M/IO 负责中断INTR、NMI、INTA 负责总线HOLD、HLDA 协调CLK、READY、TEST 模式选择MN/MX=5V

微机原理考试必备

数据段中有一字符串(10B),要求传送到附加段(符号地址MESS2开始)中的一个缓冲区 解: DATA SEGMENT;MESS1 DB '0123456789';DATA ENDS;EXTA SEGMENT; MESS2 DB 10 DUP(0);EXTA ENDS;CODE SEGMENT;ASSUME CS:CODE,DS:DATA,ES:EXTA;BEGIN: MOV AX,DATA;MOV DS,AX;MOV AX,EXTA;MOV ES,AX;CLD;MOV CX,5;MOV SI,0;MOV DI,0;REP MOVSW;CODE ENDS;END BEGIN; 以BUF为首地址的内存单元中,存放若干个8位的带符号数,统计数组中大于等于0的个数,并将结果存入result字节单元中 解 BUFF DB 1,-4,90,16,0,36,-49,-68;CNT EQU $ - BUFF;RESULT DB ?;DATA ENDS;STACK SEGMENT PARA 'stack';DB 100 DUP(0); STACK ENDS;CODE SEGMENT;ASSUME CS:CODE,DS:DATA,SS:STACK;START: MOV AX,DATA;MOV DS,AX;LEA SI,BUFF;MOV DL,0;MOV CL,CNT; LOP1: MOV AL,[SI];CMP AL,0;JL LOP2;INC DL;LOP2: INC SI;DEC CL;JNZ LOP1;MOV RESULT,DL;MOV AH,4CH; INT 21H;CODE ENDS;END START; 编一个程序,累加数组中的元素,并将和存入SUM单元 DATA SEGMENT;ARY DW 1,2,3,4,5,6,7,8,9,10;COUNT DW 10;SUM DW ?;DATA ENDS;CODE SEGMENT;MAIN PROC FAR;ASSUME CS:CODE,DS:DATA;START: PUSH;SUB AX,AX;PUSH AX;MOV AX,DATA; MOV DS,AX;CALL PROADD;RET;MAIN ENDP;PROADD PROC NEAR; PUSH AX;PUSH CX;PUSH SI;LEA SI,ARY;MOV CX, [COUNT]; XOR AX,AX;NEXT: ADD AX,[SI];ADD SI,2;LOOP NEXT;MOV [SUM],AX;POP SI;POP CX;POP AX;RET;PROADD ENDP; CODE ENDS;END START; 1加到100存到一个变量中 ASSUME CS:CODE , DS:DATA;DATA SEGMENT;JIEGUO DW ?;DATA ENDS;CODE SEGMENT;START:;MOV AX , DATA;MOV DS , AX;MOV CX , 100;

微机原理期末考试试卷(有答案)

微机原理期末考试试卷 (有答案) -CAL-FENGHAI.-(YICAI)-Company One1

《微机原理》考试试卷 一、判断题(每题1分,共10分) 1、十六位微型机的含义是:这种机器能同时处理十六位二进制数。(√) 2、微机的字长愈长,计算精度愈高,指令处理功能愈强。(√) 3、MOV指令要影响标志位。(×) 4、JMP SHORT NEXT称为近转移。(×) 5、8086与8088在软件上不一定完全兼容。(×) 6、端口是位于主机与外设之间的总称。() 7、DMA是一种不需要CPU介入的高速数据传送。() 8、8253中的计数可以通过初始化设置成加计数或减计数。() 9、内部中断的优先权总是高于外部中断。() 10、两片8259A级连后可管理16级中断。() 二、选择题(每题1分,共20分) 1、属于数据寄存器组的寄存器是_____C___。 A.AX,BX,CX,DS B.SP,DX,BP,IP C. AX,BX,CX,DX D.AL,DI,SI,AH 2、在8086和8088汇编语言中,一个字能表示的有符号数的范围是 _____B___。 A.-32768≤n≤32768 B.-32768≤n≤32767 C.-65535≤n≤65535 D.-65536≤N≤65535 3、某数存于内存数据段中,已知该数据段的段地址为2000H,而数据所在单元的偏移地址为0120H,该数的在内存的物理地址为__B______。 A.02120H B.20120H C.21200H D.03200H 4、在8086/8088微机系统中,将AL内容送到I/O接口中,使用的指令是 ___D_____。

微机原理重点考试习题Chapter 3

第3章 80x86微处理器 一、自测练习题 ㈠选择题 1.因为8086 CPU的字数据既可以存放在内存的偶地址单元,也可以安排在奇地址单元,所以其堆栈指针SP( )。 A.最好指向偶地址单元 B.可以指向任何地址单元 C.只能指向偶地址D.只能指向奇地址 2.8086/8088微处理器内部能够计算出访问内存储器的20位物理地址的附加机构是( )。 A.ALU B.加法器C.指令队列 D.内部通用寄存器3.8086CPU外部的数据总线和地址总线分别为( )位。 A.16,16 B.20,16 C.16,20 D.20,20 4.指令代码的地址存放在寄存器( )中。 A.DS和SI B.BX和BP C.ES和DI D.CS和IP 5.最大方式中,控制总线的信号来自( )。 A.8282 B.8284 C.8288 D.8286 6.在8086中,一个基本的总线周期由( )个时钟周期组成。 A.1 B.2 C.3 D.4 7.在8086CPU中,数据地址引脚( )采用时分复用。 A.AD0~AD15 B.AD0~AD9 C.AD0~AD20 D.AD10~AD2 8.8086CPU把1MB空间划分为若干逻辑段,每段最多可含( )的存储单元。 A.1KB B.8KB C.16KB D.64KB 9.当标志寄存器FLAGS中OF位等于1时,表示带有符号的字运算超出数据( )范围。 A.-128~+127 B.-32768~+32767 C.000~FFFFH D.0~FFH 10.总线写周期中,在( )时不需要像读周期时要维持一个周期的浮空状态以作缓冲。 A.-32767~+32767 B.-32767~+32768 C.-32768~+32767 D.-32766~+32769 11.CPU执行指令过程中,BIU每完成一次对存储器或I/O端口的访问过程,称为( )。 A.时钟周期 B.总线周期 C.总线读周期 D.总线写周期 12.BHE与A0配合以决定访问存储器的数据是高字节还是低字节工作,其BHE仅在总线周期开始的( )周期有效。 A.T1 B.T2 C.T3 D.T4 13.最小方式下原8086微处理器最大方式下S2、S1、S0引脚应改为( )。 A.M/IO、DEN、DT/R B.DT/R、M/IO、DEN C.M/IO、DT/R、DEN D.DEN、M/IO、DEN 14.最大方式下引脚25号和24号分别为QSo和QSl,若工作于最小方式下则分别为( )。 A.INTA和ALE B.ALE和INTA C.TEST和INTA D.DEN和ALE 15.复位时,由于( )被清零,使从INTR输入的可屏蔽中断就不能被接受。 A.标志寄存器B.通用寄存器C.暂存寄存器 D.内部通用寄存器

微机原理与汇编期末复习重点

单选、填空(单选10个,20分;填空10个,20分) 1、8086通用寄存器?P23 通用寄存器又称数据寄存器,主要用来保存算术或逻辑运算的操作数、中间运算结果。当用作16位时,称为:AX、BX、CX、DX;当用作8位时,AH、BH、CH、DH存放高字节,AL、BL、CL、DL存放低字节,并可独立寻址。 2、8086地址线、寻址范围?P37 8086系统有20根地址线。可供寻址范围0~220 -1,其存储器的最大容量为1MB,对应的地址范围:00000H~FFFFFH。 3、总线的分类?P39 按总线内部信息传输的性质分类:数据总线(DB)、地址总线(AB)、控制总线(CB)和电源总线(PB)。 按总线在系统结构中的层次位置分类:片内总线、内部总线、外部总线 按总线的数据传输方式分类:串行总线、并行总线 按总线的传输方向分类:单向总线(地址总线)、双向总线(如数据总线) 4、寻址方式?P67 8086系统中的操作数主要有3种:立即数操作数,寄存器操作数和存储器操作数。指令构成:操作码+操作数。 立即寻址方式。指令中包含操作数。如:MOV AX,12H 寄存器寻址方式。操作数存在于指令规定的8位或16位寄存器中。 如:MOV BX,AX 直接寻址方式。是存储器直接寻址方式的简称,是一种针对内存的寻址方式。指令代码中给出操作数的偏移地址,即有效地址(EA)。默认情况下,操作数存放在数据段(DS)。物理地址=16dx段地址(DS)+偏移地址(EA)。 如:①MOV AH,[3000H] ;将地址为DS:3000H存储单元中的数复制到AX寄存器中。当(DS)=5000H时,物理地址=16dx5000H+3000H=53000H,指令的执行结果(AX)=(53000H)(53001H)。②在汇编语言中,也可以用符号地址代替数值地址来表示有效地址。如:MOV AX,[A] 寄存器间接寻址方式。对内存的寻址方式。操作数的有效地址(EA)在指定的寄存器中,EA放在基址寄存器BX、BP或变址寄存器SI、DI中。 物理地址=16dx(DS)+(BX)/(DI)/(SI); 物理地址=16dx(SS)+(BP)。如:MOV AX,[BX] ;将地址为DS:BX存储单元中的数复制到AX寄存器中。 变址寻址方式。操作数的有效地址是变址寄存器(SI或DI)的内容与指令中指定的位移量的和。即有效地址EA=[变址寄存器]+位移量。 物理地址=16dx(DS)+(SI)/(DI)+ 8位(16位)位移量 例如:MOV AX,100H[SI] ;将地址为DS:SI+100H存储单元中的数复制到AX 基址寻址方式。操作数的有效地址是基址寄存器(BX或BP)的内容与指令中指定的位移量的和。 物理地址=16dx(DS)+(BX)/(BP)+ 8位(16位)位移量 例如:MOV AX,10H[BX] ;将地址为DS:BX+10H存储单元的数复制到AX寄存器基址变址寻址方式。有效地址EA=基址存储器+ 变址存储器,即两个寄存器中的内容之和为操作数的有效地址。 物理地址=16dx(DS)+ (BX)+(SI)/(DI);例如:MOV AX,[BX] [SI] 或MOV

微机原理试题及答案

学年第学期微机原理及应用(A)课程试卷 卷16 班级姓名得分任课教师 一、选择题:(每题1.5分,共18分) 1、DMAC向CPU发出请求信号,CPU响应并交出总线控制权后将( )。 ?反复执行空操作,直到DMA操作结束 ?进入暂停状态, 直到DMA操作结束 ?进入保持状态, 直到DMA操作结束 ?进入等待状态, 直到DMA操作结束 2、有一个实时数据采集系统,要求10ms进行一次数据采集,然后进行数据处理及显示输出,应 采用的数据传送方式为()。 ?无条件传送方式?查询方式 ?中断方式?直接存储器存取方式 3、在数据传送过程中,数据由串行变并行,或由并行变串行的转换可通过()来实现。 ?计数器?寄存器?移位寄存器? D触发器 4、8088 CPU输入/输出指令可寻址外设端口的数量最大可达()个。 ?128 ? 256 ? 16K ? 64K 5、CPU响应中断后,通过()完成断点的保护。 ?执行开中断指令?执行关中断指令 ?执行PUSH指令?内部自动操作 6、并行接口芯片8255A具有双向数据传送功能的端口是()。 ? PA口?PB口? PC口?控制口 7、8088CPU处理动作的最小时间单位是()。 ?指令周期?时钟周期?机器周期?总线周期 8.堆栈是内存中()。 ?先进先出的ROM区域?后进先出的ROM区域 ?先进先出的RAM区域?后进先出的RAM区域 9、计算机中广泛应用的RS-232C实质上是一种()。 ?串行接口芯片?串行通信规程(协议) ?串行通信接口标准?系统总线标准 5--1 10、高速缓冲存储器(CACHE)一般是由()芯片组成。 ? SRAM ? DRAM ? ROM ? EPROM 11、鼠标器是一种()。 ?手持式的作图部件?手持式的光学字符识别设备 ?手持式的座标定位部件?手持式扫描器 12、传送速度单位“bps”的含义是()。 ? bytes per second ? bits per second ? baud per second ? billion bytes per second 二、填空题:(每空1分,共12分)

微机原理期末考试考试卷及答案

的数据线为16位,地址线为20位,I/O口使用16位地址线。 2.在某进制的运算中7×3=33,则7×5=_55。 3.用8位二进制数表示整数时,十进制数(-128)的补码为__。原码为无,反码为无。3.8086内部寄存器长度为16位,通用寄存器有8个,段寄存器有4个。 4.8086偶存储体的选片信号是A0,奇存储体的选片信号是BHE 。 5.MOV AX,[BX+SI]的源操作数是基址变址寻址方式,目的操作数是寄存器寻址方式。6.8086可以指向堆栈的指针寄存器有bp和sp。 7.程序中段定义结束的伪指令是ENDS,子程序定义结束的伪指令是ENDP。 8.EEPROM的擦除方法为点擦除. 9.下列指令段经汇编后,DATA所代表的偏移地址为_100 CH__。 & ORG 1000H STROE DB 12 DUP() DATA DB 05H,06H,07H,08H 1. 8086/8088在不考虑段跨越情况下,DI寄存器给出的偏移地址位于_C__。 A. 仅DS段 B. DS或SS段 C. DS或ES段 D. DS或CS段 2. 下列指令中格式错误的是___A___。 A. SHL AL,CX B. XCHG AL,BL C. MOV BX,[SI] D. AND AX,BX 3. 设(20010H)=3FH,(20011H)=B2H,执行下列指令段后,BX=____B__。 MOV AX,2000H " MOV DS,AX MOV BX,[0010H] A. B2B2H B. B23FH C. 3F3FH D. 3FB2H 4. 若SP=0124H,SS=3300H,在执行INT 60H这条指令后,堆栈栈顶的物理地址为___D___。 A. 3311CH B. 33120H C. 33122H D. 3311EH 5. 下列指令中格式错误的是_C__。 A. MOV AX,357AH[BX][DI] B. OUT DX,AL C. LEA AX,50H[BX][BP] D. RCR BX,1 6. 下列指令中允许寻址范围最大的是_D__。 A. JNZ NEXT B. LOOP NEXT ¥ C. JMP SHORT PTR NEXT D. CALL NEAR PTR NEXT 7. 8086/8088不属于BIU部分的寄存器是__D____。 A. IP B. ES C. DS D. SP 8088最大模式比最小模式在结构上至少应增加___B_。 A. 中断优先级控制器 B. 总线控制器 C. 数据驱动器 D. 地址锁存器 9. 8086在存取存贮器中以偶地址为起始地址的字时,M/IO、BHE、A0的状态分别是____D__。 A. 0,0,1 B. 1,0,1 C. 1,1,0 D. 1,0,0 10. 一个半导体存贮芯片的引脚有 A13~A0,D3~D0,WE,OE,CS,VCC,GND等,该芯片存贮容量为____C__。 A. 8K×8 B. 8K×4 C. 16K×4 D. 16K×8 !

微机原理常考知识点

1、必须注意,不能用一条MOV指令实现以下传送: ①存储单元之间的传送。 ②立即数至段寄存器的传送。 ③段寄存器之间的传送。 2、ORG 表示将逻辑地址搬移至某一地方 OFFSET表示数组的偏移量(首地址) JNZ 非零跳转 JB 小于跳转 JA 大于跳转 LOOP 无条件跳转 WORD PTR的作用类似于OFFSET ROL 左移 ROR 右移 3、程序书写的一般格式: STACK SEGMENT DW 64 DUP(?) STACK ENDS DA TA SEGMENT DB:一个字节DW:两个字节DQ:四个字节 ORG .... DA TA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE DS:DA TA SS:STACK MOV AX DATA MOV DS AX MOV CX X(循环次数,可以是立即数,可以是DATA域内定义的一个常数) MOV DI OFFSET NAME(将定义的数组的首地址放入到SI或DI寄存器中用与后续的循环) ... MOV AH 4CH INT 21H MAIN ENDP CODE ENDS END MAIN 在进行运算的过程过程中,需要根据运算数是DB还是DW对寄存器进行选择是AL还是AX。 4、8086的寻址方式:

寄存器寻址、立即寻址、直接寻址、寄存器间接寻址、基址相对寻址、变址相对寻址、基址变址相对寻址 5、各个寄存器的功能: CX用于存储循环次数、AX用于各种运算和CPU与接口的数据交换、BX用来存放地址 注意寄存器的清零(一般是对AX寄存器清零,因为需要使用该寄存器进行各项运算) 6、如何处理加法过程中的进位问题。 第四章PPT 43页开始 方法一:如果有进位,AH加1 方法二:使用ADC指令 小写转大写程序 压缩BCD和非压缩BCD码的程序 7、冯诺依曼体系: 1.计算机由运算器、存储器、控制器、输入、输出设备五大部件组成; 2.程序和数据均以二进制的形式存储在存储器中,存储的位置由地址码指定,地址码也是二进制形式的; 3.控制器是根据存放在存储器中的指令序列(即程序)控制的,并由程序计数器控制指令的执行。

微机原理考试要点

名词解释 1、汇编语言:用指令助记符、符号地址、标号等书写程序的语言 2、逻辑地址:由段地址和有效地址表示的地址 3、物理地址:唯一代表存储空间中每个字节单元的地址 4、有效地址:操作数的偏移地址 5、IP:指令指针 1、堆栈:以后进先出方式工作的存储空间 2、机器语言:能被计算机直接识别的语言 3、段寄存器:保存各逻辑段的起始地址的寄存器 4、偏移地址:存储器单元所在位置到段起始地址的距离(字节个数) 5、CS :代码段寄存器 简答题 1微型计算机系统总线一般分为哪几种?请简要说明各种总线的特点。 AB单向、CB整体双向每根单向、DB双向 2简述微机系统的基本组成。 硬件系统和软件系统。硬件系统由主机和外设构成,主机由CPU和内存、I/O接口构成;软件系统包括系统软件和应用软件。 3冯诺依曼思想的主要内容是什么? 用二进制表示指令和数据;存储程序程序控制;计算机系统硬件由运算器、控制器、存储器、输入和输出设备组成。 4简述计算机指令的基本格式。 操作码和地址码两部分。 5886CPU中通常有哪几个寄存器可用来存放操作数的段内偏移地址? BX、BP、SI、DI、SP。 6构成8086系统的存储器分为哪两个存储体?它们如何与数据总线连接? 分为高位库和地位库两个存储体,16位数据线中的D15~D8与高位库相连,D7~D0 与低位库相连。 已知X=+66,Y=-51,用补码运算规则求X+Y=?并判断结果是否溢出(设机器字长8位)。+15 无溢出 填空 8086/8088 CPU由EU 和BIU 两个独立的逻辑单元构成。 8086CPU是16位微处理器,有16根数据线,20根地址线,寻址范围是1M 。 汇编语言语句有三种:指令、伪指令和宏指令。 计算机内的堆栈是一种特殊的数据存储区,对它的存取采用后进先出的原则。 X=-13,则[X]原=10001101B [X]补=11110011B 538.375D =1000011010.011B B = 21A.6H H 8086CPU的寄存器中,通常用来进行16位累加的寄存器是AX,16位计数的寄存器是CX 用一个字节来编码一位十进制数的编码称为BCD码,编码两位十进制数的编码称为压缩的BCD码。 微机系统中,主机与外设交换信息通常采用程序传送、中断方式和DMA方式。 一条指令包含操作码和操作数两大部分。 在计算机信息编码中,字符常采用ASCII编码。 地址总线是由CPU指向内存和I/O接口的单向总线。 CPU响应中断的条件是有中断请求、IF=1。

浙江大学微机原理(DSP)考试必背(知识点及基本程序部分)

第二章系统控制与中断+老师复习时专讲的中断内容 1、【强记】void InitSysCtrl( ) void InitSysCtrl() { EALLOW; WDCR=0x0068; //屏蔽WatchDog PLLCR=0xA; //锁相环设为10/2=5倍频(使系统时钟30MHz*5=150MHz) //PLLCR可设0x0~0xA,其中0x0和0x1等效,均为1/2=0.5倍频for(i= 0; i< ( (131072/2)/12 ); i++) {;} HISPCP=1; // HISPCLK=SYSCLK/HISPCP*2,从而有75MHz LOSPCP=2; // LOSPCLK=SYSCLK/LOSPCP*2,从而有37.5MHz PCLKCR=0x0D0B; //写1开启部分外设,这里开启了SCIA/B,SPI,ADC,EV A/B //0000 1101 0000 1011 EDIS; } 2、解释WatchDog(看门狗)工作原理(记住位域名称与功能) 片内振荡器时钟OSCCLK经过分频后进入8位看门狗计数器,当计数器上溢,则可输出中断或复位信号。当看门狗使能,若系统正常运行,则需用户周期性地在看门狗计数器上溢前向复位寄存器WDKEY写入0x55+0xAA来清零计数器,若程序受干扰而跑飞,则看门狗的中断或复位信号可使系统恢复至正常状态,提高系统稳定性与可靠性。 补充——涉及寄存器: 系统控制和状态寄存器SCSR:WDENINT指定看门狗输出复位信号还是中断信号;WDOVERRIDE指定是否允许用户修改控制寄存器WDCR的WDDIS位; 计数寄存器WDCNTR:低8位连续加计数,可由复位寄存器WDKEY立即清零; 复位寄存器WDKEY:连续写入0x55+0xAA可清零计数寄存器WDCNTR,写入其它序列则立即触发看门狗复位事件。读该寄存器返回控制寄存器WDCR值; 控制寄存器WDCR:WDFLAG为看门狗复位状态标志位,若复位事件由看门狗触发则置1,用户写1清零;WDDIS写1使能,写0屏蔽看门狗;WDCHK必须写101才能写WDCR 寄存器;WDPS为看门狗计数器时钟相对于OSCCLK/512的分频系数。 3、解释PLL(锁相环)工作原理 PLL负责把片内振荡器时钟或外部时钟经过倍频转化为系统时钟SYSCLKOUT。 当引脚XF_XPLLDIS为低电平:PLL被禁止,系统时钟直接引用外部时钟源。 当引脚XF_XPLLDIS为高电平:若PLLCR为0,则PLL被旁路,片内振荡器时钟OSCCLK被二分频;若PLLCR为n(n=0x1~0xA),则PLL使能,OSCCLK被(n/2)倍频。 4、【强记】为了使CPU定时器工作在指定频率,应如何设置 void InitSysCtrl(); void InitCputimer(void) //定时器初始化,中断周期为1ms(1kHz) { EALLOW; TIMER0TPR=149;//CPU定时器分频寄存器,150MHz/(149+1)=1MHz的计时器时钟TIMER0TPRH=0;//CPU定时器分频寄存器的高位置0 TIMER0PRD=(long)999;//设置CPU定时器周期寄存器,1MHz/(999+1)=1kHz

微机原理期末考试试卷(有答案)

微机原理期末考试试卷(有答案)

INC DI LOOP AGAIN 也可用指令___A____完成同样的功能。 A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB 11、动态存贮器刷新,下面哪种说法正确________。 A.刷新可在CPU执行程序过程中进行 B.刷新在外电路控制下,定时刷新,但刷新时,信息不读出 C.在正常存贮器读操作时也会发生刷新,可防止刷新影响读出信息,故读操 作时,应关闭电路工作。 D.刷新过程一定伴随着信息输出,无法控制,故刷新时不要进行读出操作。 12、用4K×8的存贮芯片,构成64K×8的存贮器,需使用多少4K×8的存贮芯片,正确答案为________。 A.128片 B.16片 C.8片 D.32片 13、对内存单元进行写操作后,该单元的内容________。 A.变反 B.不变 C.随机 D.被修改 14、在DMA方式下,CPU与总线的关系是________。 A.只能控制地址总线 B.相互成隔离状态 C.只能控制数据线 D.相互成短接状态 15、在PC/XT机中键盘的中断类型码是09H,则键盘中断矢量存储在________。 A.36H~39H B.24H~27H C.18H~21H D.18H~1BH 16、已知某系统共带三台外设,即X、Y、Z,每台外设都能发出中断,它们的中 断优先级为X>Y>Z,当前在执行Z中断服务程序时,X,Y同时发出中断请求, 若此时IF=0,问CPU响应哪台外设请求________。 A.X设备 B.Y设备 C.无响应X,后响应Y D.都不响应 17、8255A芯片中各端口的位数是________。 A.8位 B.26位 C.12位 D.4位 18、8255A的________一般用作控制或状态信息传输。 A.端口A B.端口B C.端口C D.端口C的上半部分 19、若以8253某通道的CLK时钟脉冲信号为基础,对其实行N分频后输出,通 道工作方式应设置为________。 A.方式0 B.方式2 C.方式3 D.方式4 20、8253有________个独立的计数器。 A.2 B.3 C.4 D.6 得分 三、填空题(每空1分,共20分) 1、IBM-PC机中的内存是按段存放信息的,一个段最大存贮空间为___64K_____ 字节。 2、下列字符表示成相应的ASCII码是多少? 回车___0AH_____;数字’0’ ___36H_____。 3、假设(DS)=0B000H,(BX)=080AH,(0B080AH)=05AEH,(0B080CH) =4000H,当执行指令“LES DS,[BX]”后,(DI)=____05AEH____,(ES)

微机原理及接口技术考试各章重点题库及答案

微机原理与接口技术试题库 第一章基础知识 一、填空 1、计算机中采用二进制数,尾符用B 表示。 2、西文字符的编码是ASCII 码,用 1 个字节表示。 3、10111B用十六进制数表示为H,八进制数表示为O。 4、带符号的二进制数称为真值;如果把其符号位也数字化,称为原码。 5、已知一组二进制数为-1011B,其反码为10100B ,其补码为10101B 。 6、二进制码最小单位是位,基本单位是字节。 7、一个字节由8 位二进制数构成,一个字节简记为1B ,一个字节可以表示256 个信息。 8、用二进制数表示的十进制编码,简称为BCD 码。 9、8421码是一种有权BCD 码,余3码是一种无权BCD 码。 二、选择 1、计算机中采用 A 进制数。 A. 2 B. 8 C. 16 D. 10 2、以下的 C 编码是一种有权码。 A. 循环码 B. BCD码 C. 8421码 D. 余3码 3、八进制数的尾符是 B 。 A. B B. O C. D D. H 4、与十进制数254等值的数是 A 。 A. 11111110 B. 11101111 C. 11111011 D. 11101110 5、下列不同数制表示的数中,数值最大的是 C 。 A. 11011101B B. 334O C. 1219D D. DAH 6、与十六进制数BC等值的数是B 。 A. 10111011 B. 10111100 C. 11001100 D. 11001011 7、下列字符中,ASCII码值最小的是 A 。 A. K B. Y C. a D. i 8、最大的10位无符号二进制整数转换成十进制数是C 。 A. 51 B. 512 C. 1023 D. 1024 9、A的ASCII码值为65D,ASCII码值为68D的字母是C 。 A. B B. C C. D D. E 10、下列等式中,正确的是 D 。 A. 1KB=1024×1024B B. 1MB=1024B

微机原理复习知识点总结资料

微机原理复习知识点 总结

1.所谓的接口其实就是两个部件或两个系统之间的交接部分(位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路)。 2.为了能够进行数据的可靠传输,接口应具备以下功能:数据缓冲及转换功能、设备选择和寻址功能、联络功能、接收解释并执行CPU命令、中断管理功能、可编程功能、(错误检测功能)。 3.接口的基本任务是控制输入和输出。 4.接口中的信息通常有以下三种:数据信息、状态信息和控制信息。5.接口中的设备选择功能是指: 6.接口中的数据缓冲功能是指:将传输的数据进行缓冲,从而对高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。 7.接口中的可编程功能是指:接口芯片可有多种工作方式,通过软件编程设置接口工作方式。 8.计算机与外设之间的数据传送有以下几种基本方式:无条件传送方式(同步传送)、程序查询传送(异步传送)、中断传送方式(异步传送)、DMA传送方式(异步传送)。 9.根据不同的数据传输模块和设备,总线的数据传输方式可分为无条件传输、程序查询传送方式、中断传送方式、DMA方式。 10.总线根据其在计算机中的位置,可以分为以下类型:片内总线、内部总线、系统总线、局部总线、外部总线。 11.总线根据其用途和应用场合,可以分为以下类型:片内总线、片间总线、内总线、外总线。ISA总线属于内总线。 12.面向处理器的总线的优点是:可以根据处理器和外设的特点设计出最适合的总线系统从而达到最佳的效果。 13. SCSI总线的中文名为小型计算机系统接口(Small Computer System Interface),它是 芯的信号线,最多可连接 7 个外设。 14. USB总线的中文名为通用串行接口,它是4芯的信号线,最多可连接127个外设。 15. I/O端口的编码方式有统一编址和端口独立编址。访问端口的方式有直接寻址和间接寻址。PC机的地址由16位构成,实际使用中其地址范围为000~3FFH。 16.在计算机中主要有两种寻址方式:端口独立编址和统一编址方式。在端口独立编址方式中,处理器使用专门的I/O指令。 17. 74LS688的主要功能是:8位数字比较器,把输入的8位数据P0-P7和预设的8位数据Q0-Q7进行比较。如果相等输d出0,不等输出1。 主要功能:把输入的8位数据P0-P7和预设的8位数据Q0-Q7进行比较,比较的结果有三种:大于、等于、小于。通过比较器进行地址译码时,只需把某一地址范围和预设的地址进行比较,如果两者相等,说明该地址即为接口地址,可以开始相应的操作。 18. 8086的内部结构从功能上分成总线接口单元BIU和执行单元EU两个单元。 19. 8086有20地址线,寻址空间1M,80286有24根地址线,寻址空间为 16M。 20. 8086/8088有两种工作模式,即最大模式、最小模式,它是由MNMX 决定的。

微机原理期末考试考试卷及答案

1、8086的数据线为16位,地址线为20位,I/O口使用16位地址线。 2、在某进制的运算中7×3=33,则7×5=_55。 3、用8位二进制数表示整数时,十进制数(-128)的补码为__。原码为无,反码为无。 3.8086内部寄存器长度为16位,通用寄存器有8个,段寄存器有4个。 4.8086偶存储体的选片信号就是A0,奇存储体的选片信号就是BHE 。 5.MOV AX,[BX+SI]的源操作数就是基址变址寻址方式,目的操作数就是寄存器寻址方式。 6.8086可以指向堆栈的指针寄存器有bp与sp。 7.程序中段定义结束的伪指令就是ENDS,子程序定义结束的伪指令就是ENDP。 8.EEPROM的擦除方法为点擦除、 9、下列指令段经汇编后,DATA所代表的偏移地址为_100 CH__。 ORG 1000H STROE DB 12 DUP(?) DATA DB 05H,06H,07H,08H 1、8086/8088在不考虑段跨越情况下,DI寄存器给出的偏移地址位于_C__。 A、仅DS段 B、DS或SS段 C、DS或ES段 D、DS或CS段 2、下列指令中格式错误的就是___A___。 A、SHL AL,CX B、XCHG AL,BL C、MOV BX,[SI] D、AND AX,BX 3、设(20010H)=3FH,(20011H)=B2H,执行下列指令段后,BX=____B__。 MOV AX,2000H MOV DS,AX MOV BX,[0010H] A、B2B2H B、B23FH C、3F3FH D、3FB2H 4、若SP=0124H,SS=3300H,在执行INT 60H这条指令后,堆栈栈顶的物理地址为___D___。 A、3311CH B、33120H C、33122H D、3311EH 5、下列指令中格式错误的就是_C__。 A、MOV AX,357AH[BX][DI] B、OUT DX,AL C、LEA AX,50H[BX][BP] D、RCR BX,1 6、下列指令中允许寻址范围最大的就是_D__。 A、JNZ NEXT B、LOOP NEXT C、JMP SHORT PTR NEXT D、CALL NEAR PTR NEXT 7、8086/8088不属于BIU部分的寄存器就是__D____。 A、IP B、ES C、DS D、SP 8、8086/8088最大模式比最小模式在结构上至少应增加___B_。 A、中断优先级控制器 B、总线控制器 C、数据驱动器 D、地址锁存器 9、8086在存取存贮器中以偶地址为起始地址的字时,M/IO、BHE、A0的状态分别就是____D__。 A、0,0,1 B、1,0,1 C、1,1,0 D、1,0,0 10、一个半导体存贮芯片的引脚有A13~A0,D3~D0,WE,OE,CS,VCC,GND等,该芯片存贮容量为____C__。 A、8K×8 B、8K×4 C、16K×4 D、16K×8 1、写出8086CPU所含14个寄存器的英文标识及中文名称。CS16位代码段寄存器DS 16位数据段寄存器SS16位堆栈段寄存器ES16位附加段寄存器AX 累加寄存器BX基址寄存器

微机原理考试题目及知识点整理

填空题 1、8086CPU内部按功能可分为总线接口单元和执行单元两个独立单元。它们各自的主要功能是负责CPU对存储器和外设的访问和负责指令的译码、执行和数据的运算。 p17、p18 2、CPU总线包含三种不同功能的总线,双向的有数据总线和控制总线,单向的有地址总线。 其中地址总线的位数决定了CPU可以直接寻址的内存范围。比如,8088CPU有 20 根数据总线,⑩根地址总线,所以,其最大内存容量1MB 。p6

1. 2.8088的逻辑结构。 参考p18的图2-2及上下文。主要是理解总线接口单元及执行单元的作用,分别执行哪些操作。 地址加法器的作用(p23):将逻辑地址中的16位段地址左移二进制4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得20位物理地址,以进行寻址。 3.中断相关、中断向量、中断向量号计算。 p156 中断相关参考知识点14,对于中断向量可参考填空题11题。 主要是中断向量号计算,依照公式 中断向量的地址(物理地址)=中断类型号(n)×4 来计算地址或类型号(也叫向量号),以及写出中断入口地址。这里举个例子(不是老师给的题):PC机采用向量中断方式处理8级中断,中断号依次为08H~0FH,在RAM0:2CH单元开始依次存放23H、

FFH、00H和F0H四个字节,该向量对应的中断号以及中段程序入口是 解答:每个中断向量在中断向量表中占4个字节。低16位存放中断程序的偏移地址IP,高16位存放中断程序的段地址CS。对于本题,中断类型号: 2CH除以4得0BH;中断程序入口地址CS:IP为F000:FF23H。这里要注意除法运算的进制问题,以及入口地址的书写。 4.六个周期及相互关系、五个地址。 p98、p23 六个周期(p98): 指令周期:一条指令取值、译码到执行完成的过程。包含多个总线周期。 总线周期也称机器周期:伴有数据交换的总线操作。包含多个时钟周期。 时钟周期:CPU进行不同的具体操作,处于不同的操作状态。时间长度为时钟频率的倒数。 空闲周期:时钟周期的一种,一般是芯片空闲时所处的状态,CPU在此状态进行内部操作,没有对外操作。 等待周期:时钟周期的一种,一般是芯片等待是所处的状态,CPU在等待周期维持之前的状态不变,直到满足某种条件进入下一个时钟周期。 //例子可参考p99的写总线周期。 五个地址(p23): 物理地址:对应每个物理存储单元都有一个唯一的20位地址,微处理器通过总线存取存储器数据时采用这个地址。 逻辑地址:分段后在8088内部和用户编程时,采用的“段地址:偏移地址”形式称为逻辑地址。 偏移地址:主存单元距离段起始位置的偏移量。 线性地址:逻辑地址到物理地址变换之间的中间层, 线性地址是一个32位无符号整数,过逻辑地址变换得到。 虚拟地址:从0号单元开始编址,顺序分配符号名对应的地址单元,不是主存中的真实地址,故称为相对地址、程序地址、逻辑地址或称虚拟地址。《软件设计师教程》p116 5.DMAC如何控制总线。 参考知识点4、5。DMAC通过总线请求HRQ与总线响应HLDA来向CPU申请获取总线控制权,通过地址允许AEN 来将锁存的高8位地址送入系统总线,DMA传送时用来屏蔽其它的总线驱动器。通过MEMR*(IOR*)与MEMW*(IOW*)来实现存储器与外设通过总线的数据传输。 6.三大总线形成相关。 最小模式: 地址总线:CPU的AD0~AD7, A8~A15, A15~A19 通过地址锁存器8282(3片) 构成。 数据总线:直接由AD0~AD7提供,或通过数据收发器8286(8088为1片,8086为2片)供给。 控制总线:直接由CPU的控制线供给。 最大模式: 地址总线:CPU的AD0~AD7, A8~A15, A15~A19 通过地址锁存器8282 (3片) 构成。

相关文档
最新文档