当前位置:文档之家› 微型计算机原理及应用

微型计算机原理及应用

微型计算机原理及应用
微型计算机原理及应用

第四章汇编语言程序设计

4-2 下列程序执行后,寄存器AX,BX,CX的内容分别是多少?

D SEGMENT AT 0202H;定位数据段地址

ORG 0202H ;定位偏移地址

DA_WORD DW 20H

MOV AX,DA_WORD ;(AX)=0020H

MOV BX,OFFSET DA_WORD ;(BX)=0202H

MOV CL,BYTE PTR DA_WORD ;(CL)=20H(将变量DA_WORD的属性改变为字节型)MOV CH,TYPE DA_WORD ;(CH)=2(变量类型数值)

;(CX)=0220H

4-4 试编制一程序,把CHAR1中各小写字母分别转换为对应的大写字母,并存放在CHAR2开始的单元中(题目要求:不改变CHAR1的内容)

方法1,小写字母转换一个输出显示一个,前3种方法均使用了AL寄存器

D SEGMENT

CHAR1 DB "abcdefghijklmnopqrstuvwxyz"

N EQU $-CHAR1;变量必须先定义后使用,而不能相反

CHAR2 DB N DUP(0) ; ;不能把此句与上一句对调,CHAR2 DB $-CHAR1有

;的同学这样写,错在哪

D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S ;ASSUME是伪指令,后面不能写冒号

START: MOV AX,D

MOV DS,AX

;MOV ES,AX ;只要用到串操作指令且DI

LEA SI,CHAR1 ;MOV SI,OFFSET CHAR1

LEA DI,CHAR2 ; MOV DI,OFFSET CHAR2

MOV CX,N ;$-CHAR1,不可以

AGAIN:MOV AL,[SI]

SUB AL,20H ;AND AL,5FH 有的同学是这样实现的

MOV [DI],AL

MOV DL,AL

MOV AH,2

INT 21H ;从屏幕显示

INC SI

INC DI

LOOP AGAIN

MOV AH,4CH

INT 21H ; ;不是必须的

C ENDS

END START

方法2:使用通用数据传送指令MOV

D SEGMENT

CHAR1 DB ‘abcdefghijklmnopqrstuvwxyz’

N EQU $-CHAR1;变量必须先定义后使用,而不能相反

CHAR2 DB N DUP(0);不能把此句与上一句对调

D ENDS

STACK SEGMENT STACK

DB 200 DUP(0)

STACK ENDS ;P126(代码段和堆栈段是不可少的)

C SEGMENT

ASSUME CS:C ,DS:D ,SS:S

START: MOV AX,D

MOV DS,AX

MOV ES,AX ;只要用到串操作指令且DI

MOV SI,0 ;LEA SI,CHAR1

MOV DI,0 ;LEA DI,CHAR2

MOV CX,N

AGAIN: MOV AL,CHAR1[SI] ; MOV AL,[SI]

SUB AL,20H

MOV CHAR2[DI],AL ; MOV [DI],AL

INC SI

INC DI LOOP AGAIN

MOV AH,4CH

INT 21H ;不是必须的

C ENDS

END START

第3种方法:使用串的读写指令LODSB STOSB

D SEGMENT

CHAR1 DB ‘abcdef’

N EQU $-CHAR1

CHAR2 DB $-CHAR1 DUP(0) D ENDS

STACK SEGMENT STACK

DB 200 DUP(0)

STACK ENDS ;P126(代码段和堆栈段是不可少的)

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START: MOV AX,D

MOV DS,AX

MOV ES,AX

MOV SI,0 ;LEA SI,CHAR1

MOV DI,0 ;LEA DI,CHAR2

MOV CX,N

CLD ;不写(隐含)也是0(递增)但不能STD

AGAIN: LODSB ;执行一次,隐含修改SI

SUB AL,32

STOSB ;MOV [DI],AL;执行一次, 隐含修改DI INC DI

LOOP AGAIN ;LOOP指令只修改CX,不管SI,DI

MOV AH,4CH

INT 21H ;不是必须的

C ENDS

END START

第四种方法2006级,没有显示使用MOVSB指令

D SEGMENT

CHAR1 DB "abcdefghijklmnopqrstuvwxyz"

N EQU $-CHAR1

CHAR2 DB N DUP(0)

D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START:

MOV AX,D

MOV DS,AX

MOV ES,AX

LEA SI,CHAR1

LEA DI,CHAR2

MOV CX,N

AGAIN:MOVSB ; SUB [SI],20H

DEC DI ; MOVSB

SUB BYTE PTR[DI],20H ;LOOP ADAIN 错在哪里?结果如何?

INC DI

LOOP AGAIN

MOV AH,4CH

INT 21H

C ENDS

END START

方法5: 只用一个地址指针SI

D SEGMENT

CHAR1 DB "abcdefghijklmnopqrstuvwxyz"

N EQU $-CHAR1

CHAR2 DB N DUP(0) D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START:

MOV AX,D

MOV DS,AX

MOV ES,AX

MOV SI,0

MOV CX,N

AGAIN:MOV AL,CHAR1[SI] ;只用一个地址指针,SI[CHAR1]是错误的

SUB AL,20H

MOV CHAR2[SI],AL

INC SI

LOOP AGAIN

int 3

MOV AH,4CH

INT 21H

C ENDS

END START

有的同学按数据是由键盘录入的来考虑的,也可行,程序中还有不少问题

方法6:由键盘输入小写字母再转换输出,回车符也占一个字节,输入需要小写转换成大写字母的内容从输入串的第3个元素开始

D SEGMENT

A DB"CHAR1",0DH,0AH,"$"

B DB"CHAR2",0DH,0AH,"$"

CHAR1 DB 11,?,11 DUP(0);准备输入10个小写字母

CHAR2 DB 10 DUP(0)

D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START:

MOV AX,D

MOV DS,AX

MOV ES,AX

MOV DX,OFFSET A

MOV AH,9

INT 21H

LEA DX,CHAR1

MOV AH,0AH

INT 21H ;由键盘输入字符串,10个字母(显示),1个回车,共11个字节

LEA SI,CHAR1[2]

LEA DI,CHAR2

MOV CX,10 ;需要转换的字符长度为10个字节

AGAIN:MOV AL,[SI]

SUB AL,20H

MOV [DI],AL

INC SI

INC DI

LOOP AGAIN ; 将小写字母字符串转换成大写字母字符串

MOV BYTE PTR[DI],0DH

INC DI

MOV BYTE PTR[DI],0AH

INC DI

MOV BYTE PTR[DI],'$' ;必须指明数据类型

MOV DX,OFFSET CHAR2

MOV AH,9

INT 21H ;输出'$'结尾的大写字母字符串

int 3

MOV AH,4CH

INT 21H

C ENDS

END START

4-6在BUF地址处起,存放有100个字节的字符串,设其中有一个以上的“A”字符,编程查找出第一个“A”字符相对起始地址的距离,并将其存入LEN单元。

方法1,经过调试,数据串长N

D SEGMENT

BUF DB 'qasdA%^9F26HsdfhA$#12345678'

DB 'DFGH234546JII2334JI5467OPPAVG'

DB 'ASDFG45667RTY' ; 必须写实际的

N EQU $-BUF;有同学写成N EQU BUF

LEN DW 0;为变量LEN保留一个字,必须先定义后使用,LEN DW ?

D ENDS

S SEGMENT STACK ;应该将程序写完整

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START: MOV AX,D

MOV DS,AX

MOV ES,AX ;这条指令是必须的

MOV CX,N

LEA DI,BUF ;MOV DI,OFFSET BUF

MOV AL,41H ;MOV AL,‘A’

REPNE SCASB ;有的同学用的比较指令

DEC DI ;不必判断是否找到,一定找到

MOV LEN,DI ;MOV LEN,[DI]错在哪里? MOV LEN,[DI-1]或MOV

LEN,BYTE PTR[DI]错在哪里 ,MOV LEN,OFFSET BUF[DI-1]对不对 或

LEA LEN,BUF[DI-1]

MOV AH,4CH

INT 21H

C ENDS

END START

4-8 某程序设置的数据区如下所示,画出该数据段内容在内存中的存放形式(要

用十六进制补码表示,按字节组织)

DATA SEGMENT DB1 DB 12H,34H,0,56H DW1 DW 78H,90H,0AB46H,1234H ADR1 DW DB1 ;取变量DB1的偏移地址 ADR2 DW DW1 ;;取变量DW1的偏移地址

AAA DW $-DB1 ;计算当前变量到DB1变量的字节数 BUF DB 5 DUP(0) DATA ENDS

有的同学认为0AB46H 是负数,并取了它的补码 2

0000H DB1 0004H DW1 000CH ADR1 000EH ADR2 0010H AAA 0012H BUF

4-10 以BUF1和BUF2开头的2个字符串,其长度均为LEN,试编程实现:

(1)将BUF1开头的字符串送到BUF2开始的内存空间。(2)将BUF1开始的内存空间全部清零。

经过调试的:方法1:数据段与附加段重叠,利用MOVSB指令实现数据传的复制

D SEGMENT

D1 DB 'BUF1QWE233459JKGHGFHGF';看清题目要求,写出实际内容对存储

器初始化,分配内存空间,不能偷懒LEN DB $-D1;有同学写成N EQU LEN

D2 DB ' BUF2ASD33459JKGHGFHGFI';长度与D1相同

D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

STAR:

MOV AX,D

MOV DS,AX

MOV ES,AX ;附加段与数据段重叠,是允许的

LEA SI,D1

LEA DI,D2

MOV CX,LEN

REP MOVSB

LEA DI,D1

MOV CX,LEN ;这条语句不能少

MOV AL,00H ;MOV AX,0错在哪

REP STOSB

MOV AH,4CH

INT 21H

C ENDS

END STAR

经过调试的:方法2;数据段与附加段分开,串读一个写一个实现数据的传送,再利用串写指令使指定存储区清零

D SEGMENT

D1 DB 'BUF1qasdA%^9F26HsdfhA$#12345678'

LEN EQU $-D1

D ENDS

E SEGMENT

D2 DB "BUF2abcdefghijklmnopqrstuvwxyz0" ; 必须写实际的,

;与D1长度相同

E ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START: MOV AX,D

MOV DS,AX

MOV AX,E

MOV ES,AX

MOV CX,N

LEA SI,D1 ;MOV SI,OFFSET D1

LEA DI,D2

LP: LODSB

STOSB

LOOP LP ;LOOP只是使CX减1,不改变SI DI

LEA DI,D1

MOV CX,N ;这条语句不能少

MOV AL,00H

REP STOSB

MOV AH,4CH

INT 21H

C ENDS

END START

第3种做法:传送一个字节清零一个字节,再向下一个字节进行

D SEGMENT

D1 DB 'BUF1QWE233459JKGHGFHGF';看清题目要求,写出实际内容对存储

器初始化,分配内存空间,不能偷懒LEN DB $-D1

D2 DB ' BUF2ASD33459JKGHGFHGFI';长度与D1相同

D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

STAR: MOV AX,D

MOV DS,AX

MOV ES,AX

LEA SI,D1

LEA DI,D2

MOV CX,LEN

NEXT:MOV AL,[SI]

MOV [DI],AL

MOV [SI],00H

INC SI

INC DI

LOOP NEXT

MOV AH,4CH

INT 21H

CSEG ENDS

END STAR

方法4;4-10-4从键盘输入初值,并显示

D SEGMENT

BUF1 DB 101,?,101 DUP(0)

BUF2 DB 100 DUP(0)

BUF3 DB 100 DUP(0)

A D

B 'BUF1',0DH,0AH,'$'

B DB 'BUF2',0DH,0AH,'$'

D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START: MOV AX,D

MOV DS,AX

MOV ES,AX

MOV DX,OFFSET A

MOV AH,9

INT 21H ;输出显示'BUF1'

MOV DX,OFFSET BUF1

MOV AH,0AH

INT 21H ;键盘输入字符串

MOV CL,[BUF1+1] ;实际输入的字符串长度送CL,取相应单元的内容不需加方括号

MOV CH,0

PUSH CX

CLD

LEA SI,BUF1+2

LEA DI,BUF2

REP MOVSB ;将输入的字符串传送到BUF2

MOV BYTE PTR[DI],0DH

INC DI

MOV BYTE PTR[DI],0AH

INC DI

MOV BYTE PTR[DI],'$';在BUF2末尾输入回车换行和‘$'

MOV SI,OFFSET BUF3

MOV DI,OFFSET BUF1+2;取变量的偏移地址,不能加方括号

POP CX

REP MOVSB ;用BUF3替换BUF1

MOV BYTE PTR[DI],0DH

INC DI

MOV BYTE PTR[DI],0AH

INC DI

MOV BYTE PTR[DI],'$';在BUF1末尾输入回车换行和‘$'

MOV DX,OFFSET A

MOV AH,9

INT 21H ;输出显示’BUF1'

MOV DX,OFFSET BUF1+2

MOV AH,9

INT 21H ;输出空格,因为BUF1已经清零了

MOV DX,OFFSET B

MOV AH,9

INT 21H ;输出显示’BUF2'

MOV DX,OFFSET BUF2

MOV AH,9

INT 21H ;输出BUF2,即键盘输入的内容

MOV AH,4CH

INT 21H

C ENDS

END START

4-14 试编写一程序,找出BUF数据区中带符号数的最大数和最小数,把最大数放

到BH单元,把最小数放到BL单元。

D SEGMENT

BUF DB 5,90,-45,100,99,………,-12

N EQU $-BUF

D ENDS

STACK SEGMENT STACK

DB 200 DUP(0)

STACK ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START: MOV AX,D

MOV DS,AX

MOV CX,N-1

MOV SI,0

MOV BH,BUF[SI]

MOV BL,BUF[SI]

AGAIN: INC SI

CMP BH,BUF[SI]

JGE NEXT ;JAE NEXT错(无符号数)

MOV BH,BUF[SI]

ABC: LOOP AGAIN ;这句不要也行

NEXT: CMP BL,BUF[SI]

JLE ABC

MOV BL,BUF[SI]

LOOP AGAIN

C ENDS

END START

4-16 若AL中的内容为2位压缩的BCD数68H,试编程:(1)将其拆开成非压缩的BCD数,高低位分别存入BH和BL中。

(2)将上述要求的2位BCD码变换成对应的ASCII码,并且存入CH和CL中。

方法1,经过调试的

D SEGMENT

D1 DB 1,2,3

D ENDS

S SEGMENT STACK

DB 10 DUP(?)

S ENDS

C SEGMENT

ASSUME CS:C,SS:S,DS:D

STAR:MOV AX,D

MOV DS,AX

MOV AL,68H

MOV BH,AL

AND AL,0FH

MOV BL,AL ;(BL)是低位非压缩的BCD码

AND BH,0F0H ;(BH)将是高位非压缩的BCD码

MOV CL,4

SHR BH,CL ; (BH)是高位非压缩的BCD码

MOV CL,BL

ADD CL,30H ;(CL)是低位ASCII码

MOV CH,BH

ADD CH,30H ; (CH)是高位ASCII码

MOV AH,4CH

INT 21H

C ENDS

END STAR

方法2

D SEGMENT

D1 DB 1,2,3

D ENDS

S SEGMENT STACK

DB 10 DUP(?)

S ENDS

C SEGMENT

ASSUME CS:C,SS:S,DS:D

STAR:MOV AX,D

MOV DS,AX

MOV SI,OFFSET D1

MOV DL,68H

MOV AL,68H

AND AL,0FH

MUL BYTE PTR[SI]

AAM ;乘法的ASCII码调整指令,P99

MOV BL,AL

MOV BH,DL

AND BH,0F0H

MOV CL,4

SHR BH,CL

MOV AL,BH

MUL BYTE PTR[SI]

AAM

MOV BH,AL

MOV CL,BL

ADD CL,30H

MOV CH,BH

ADD CH,30H

C ENDS

END STAR

4-18试用子程序结构编写一程序:从键盘输入一个2位十进制的月份数(01~12),然后显示出相应的英文缩写名。

提示:根据题目要求实现的功能,可编写用一个主程序MAIN分别调用几个子程序。

(1) INPUT从键盘接收一个2位数,并把它转换为对应的二进制数。

(2) LOCATE 把输入的月份数与其英文缩写名(如JAN,FEB,MAR,APP,MAY,JUN等)对应起来,制成一个字符表以便查找。

(3) DISPLAY 将找到的缩写字母在屏幕上显示出来,显示可用DOS所提供的显示功能(INT 21H的09号功能)。

方法1:与方法2的不同主要在数据表的制定

D SEGMENT

D1 DB "Please input month from the keyboad",0DH,0AH,"$"

D2 DB 3, ?,3 DUP(?);分配键盘输入缓冲区,回车符占一个字节,但

实际输入的字符数中不包含它,即输入2位数至少需预留3个字节的空间,输入完成后,实际输入的字符数为2

D3 DB "ERROR",0DH,0AH,"$"

MONTH0 DB "JAN",0DH,0AH,"$"

DB "FEB" ,0DH,0AH,"$"

DB "MAR" ,0DH,0AH,"$"

DB "APP" ,0DH,0AH,"$"

DB "MAY" ,0DH,0AH,"$"

DB "JUN" ,0DH,0AH,"$"

DB "JUL" ,0DH,0AH,"$"

DB "AUG" ,0DH,0AH,"$"

DB "SEP" ,0DH,0AH,"$"

DB "OCT" ,0DH,0AH,"$"

DB "NOV" ,0DH,0AH,"$"

DB "DEC" ,0DH,0AH,"$"

D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START:CLD

MOV AX,D

MOV DS,AX

CALL INPUT

CALL LOCATE

CALL DISPLAY

MOV AH,4CH

INT 21H

INPUT PROC NEAR

LEA DX, D1 ;将D1表示的相对地址送DX

MOV AH,9

INT 21H ;显示‘Please input month from the keyboad’并换行

ww2:LEA DX,D2 ;输入月份

MOV AH,0AH

INT 21H

LEA DI,D2 ;将D2表示的相对地址送DI

CMP byte ptr [DI+1],2 JNE ww2 ;输入的如果不是二位数,是错误

MOV AH,[DI+2];输入的月份高字节(十位数)

MOV AL,[DI+3];输入的月份低字节(个位数)

XOR AX,3030H ;将ASCII码变成BCD码

MOV BX,AX

MOV AL,BH

mov dl,0ah

MUL dl ;变成二进制数

MOV BH,AL

MOV AL,BL ;输入的月份低字节(个位数)

ADD AL,BH ;AL=1-12

RET ;是必须的

INPUT ENDP ;是必须的

LOCATE PROC NEAR

DEC AL

CMP AL,0CH

JNC ERROR ;≥12(正确的情况应该是0-11),输入错误

MOV BL,06H

MUL BL

LEA SI,MONTH0

ADD SI,AX

MOV DX,SI;制成一个字符表以便查找。

RET

ERROR:LEA DX,D3 ;将D3表示的相对地址送DX

RET

LOCATE ENDP

DISPLAY PROC NEAR

MOV AH,09H;将找到的缩写字母在屏幕上显示出来

INT 21H

RET

DISPLAY ENDP

C ENDS

END START

方法2:数据表的制定与方法1有所不同

D SEGMENT

D1 DB "Please input month from the keyboad",0DH,0AH,"$" D2 DB 4, ?,3 DUP(?) ;准备接收键盘输入,只输入2个字符,为什么必须设定最大输入字符数为3,算回车符吗?

D3 DB "ERROR",0DH,0AH,"$"

MONTH1 DB 01H

DB "JAN",0DH,0AH,"$"

MONTH2 DB 02H

DB "FEB" ,0DH,0AH,"$"

MONTH3 DB 03H

DB "MAR" ,0DH,0AH,"$"

MONTH4 DB 04H

DB "APP" ,0DH,0AH,"$"

MONTH5 DB 05H

DB "MAY" ,0DH,0AH,"$"

MONTH6 DB 06H

DB "JUN" ,0DH,0AH,"$"

MONTH7 DB 07H

DB "JUL" ,0DH,0AH,"$"

MONTH8 DB 08H

DB "AUG" ,0DH,0AH,"$"

MONTH9 DB 09H

DB "SEP" ,0DH,0AH,"$"

MONTH10 DB 0AH

DB "OCT" ,0DH,0AH,"$"

MONTH11 DB 0BH

DB "NOV" ,0DH,0AH,"$"

MONTH12 DB 0CH

DB "DEC" ,0DH,0AH,"$"

D ENDS

S SEGMENT STACK

DB 200 DUP(0)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,SS:S

START:CLD

MOV AX,D

MOV DS,AX

CALL INPUT

CALL LOCATE

CALL DISPLAY

MOV AH,4CH

INT 21H

INPUT PROC NEAR

LEA DX, D1 ;将D1表示的相对地址送DX

CALL DISPLAY

;MOV AH,9

;INT 21H ;显示‘Please input month from the keyboad’并

换行

ww2:LEA DX,D2 ;输入月份

MOV AH,0AH

INT 21H

LEA DI,D2 ;将D2表示的相对地址送DI

CMP byte ptr [DI+1],2 JNE ww2 ;输入的如果不是二位数,是错误

MOV AH,[DI+2];输入的月份高字节(十位数)

MOV AL,[DI+3];输入的月份低字节(个位数)

XOR AX,3030H ;将ASCII码变成BCD码,高位是1或0

MOV BX,AX

MOV AL,BH

mov dl,0ah

MUL dl ;变成二进制数

MOV BH,AL

MOV AL,BL ;输入的月份低字节(个位数)

ADD AL,BH ;AL中为1-12

RET

INPUT ENDP

LOCATE PROC NEAR

;DEC AL

CMP AL,0DH

JNC ERROR ;≥13,输入错误

LEA DI,MONTH1

BJ: CMP AL,[DI]

JZ DONE

ADD DI,7

JMP BJ

;MOV BL,06H

;MUL BL

;LEA SI,MONTH0

;ADD SI,Ax

;MOV DX,SI;制成一个字符表以便查找。

; RET

DONE: INC DI

MOV DX,DI ;将D3表示的相对地址送DX

JMP DONE1

ERROR:LEA DX,D3

DONE1: RET

LOCATE ENDP

DISPLAY PROC NEAR

MOV AH,09H;将找到的缩写字母在屏幕上显示出来

INT 21H

RET

DISPLAY ENDP

C ENDS

END START

4.20 试编程:从键盘输入同学的姓名Mr.ABC或Mrs.XYZ,当按动任意一个键时,屏幕上将显示出

“Welcome Mr.ABC”或“Welcome Mrs.XYZ”

方法1,使用子程序

D SEGMENT

D1 DB "Please input name from the keyboard",0dh,0ah,"$"

D2 db 20,?,20 dup(?)

D3 DB "Welcome Mr. ABC",0DH,0AH,"$"

D4 DB "Welcome Mrs. XYZ",0DH,0AH,"$"

D5 DB "Please input again",0DH,0AH,"$"

D ENDS

S SEGMENT STACK

DB 200 DUP(?)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,ES:D

STAR:MOV AX,D

MOV DS,AX

CALL INPUT

CALL DISPLAY

MOV AH,4CH

INT 21H

INPUT PROC NEAR

LEA DX,D1

CALL DISPLAY

WW:LEA DX,D2

MOV AH,0AH

INT 21H

LEA DI,D2

CMP BYTE PTR[DI+1],6

JZ NEXT0

CMP BYTE PTR[DI+1],7

JZ NEXT1

LEA DX,D5

CALL DISPLAY

JMP WW

NEXT0:LEA DX,D3

JMP DONE

;CALL DISPLAY;去掉,否则显示两遍

NEXT1:LEA DX,D4

;CALL DISPLAY

DONE:RET

INPUT ENDP

DISPLAY PROC NEAR

MOV AH,09H

INT 21H

RET

DISPLAY ENDP

C ENDS

END STAR

方法2

D SEGMENT

D1 DB "Mr. ABC"

N EQU $-D1

D2 DB "Mrs. XYZ"

N1 EQU $-D2

D3 DB "Welcome Mr. ABC",0DH,0AH,"$"

D4 DB "Welcome Mrs. XYZ",0DH,0AH,"$"

D5 DB 20

DB ?

DB 20 DUP(?)

D ENDS

S SEGMENT STACK

DB 200 DUP(?)

S ENDS

C SEGMENT

ASSUME CS:C,DS:D,ES:D

STAR:MOV AX,D

MOV DS,AX

MOV ES,AX

LEA DX,D5

MOV AH,0AH

INT 21H ;从键盘输入,输入缓冲区D5

LEA DI,D5 ;输入字符长度和“Mr. ABC”字符串长度比较

CMP BYTE PTR[DI+1],N

JNE LAST ;不相等,转LAST

LEA DX,D3 ;相等,输出"Welcome Mr. ABC"

MOV AH,9

INT 21H

LAST: LEA DI,D5;输入字符串长度和“Mrs. XYZ”字符串长度比较 CMP BYTE PTR[DI+1],N1

JNE LAST1

LEA DX,D4 ;相等,输出"Welcome Mrs. XYZ"

MOV AH,9

INT 21H

JMP LAST1

LAST1:MOV AH,4CH

INT 21H

C ENDS

END STAR

注意:第三章作业和第四章作业的要求区别:

第三章作业是编写程序段,不必按段结构写;

第四章作业是编写程序,必须按段结构写

1谈谈你对计算机基本工作原理的认识

答:(1)计算机的基本组成即5大部分3总线。运算器和控制其集成在一

起构成CPU,存储器用来存放程序和数据及运算结果,输入输出设备负责采集数据和输出显示。

(2)CPU依据IP寄存器的内容不断地从内存中取得指令,经过指令翻译寄存器翻译指令,根据指令码执行指令并将运行结果存到内存或从输出设备

输出的过程。

2根据你所学过的知识,给出几种提高计算机运行速度的措施,并简要说明理由

答:(1)指令预取和指令执行的并行重叠操作,形成流水线结构,可提高计算机的运行速度。

(2)在满足结果精度的前提下,变量类型尽可能按以下顺序优先采用字节型、字型、双字型,能用无符号数的情况不采用有符号数,这样计算快捷;

字类型变量采用规则自存放到内存,这样存取快捷。

(3)使用汇编指令更接近机器语言,可直接操作到CPU内部的寄存器或存储单元,能用CPU内部的寄存器做操作数时不用存储器寻址,这样不必执

行总线周期,提高指令的运行速度。

(4)用移位指令代替乘除法运算指令,因两类指令的指令周期大小差很多,这样可提高运算速度。

(5)尽可能采用中断或DMA方式实现CPU和外设之间的数据传送问答

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

《微机原理及应用》试题库 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 实验项目名称:I/O地址译码;简单并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握I/O地址译码电路的工作原理,简单并行接口的工作原理及使用方法。 二、预备知识: 输入、输出接口的基本概念,接口芯片的(端口)地址分配原则,了解译码器工作原理及相应逻辑表达式,熟悉所用集成电路的引线位置及各引线用途;74LS245、74LS373的特性及作用。 三、实验内容245输入373输出 使用Protues仿真软件制作如下电路图,使用EMU8086编译软件编译源程序,生成可执行文件(nn . exe),在Protues仿真软件中加载程序并运行,分析结果。 编程实现:读8个开关的状态,根据输入信号控制8个发光二极管的亮灭。 图1-1 245输入373输出 四、程序清单

五、实验结果 六、结果分析 七、思考题: 1、如果用74LS373作输入接口,是否可行?说明原因;用74LS245作输出接口,是否可行?说明原因。

实验报告2 实验项目名称:可编程定时器/计数器;可编程并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握8253的基本工作原理和编程应用方法。掌握8255的工作原理及使用方法。 二、预备知识: 8253的结构、引脚、控制字,工作方式及各种方式的初始化编程及应用。 8255的内部结构、引脚、编程控制字,工作方式0、1、2的区别,各种方式的初始化编程及应用。 三、实验内容: ⑴8253输出方波 利用8253的通道0和通道1,设计产生频率为1Hz的方波。设通道0的输入时钟频率为2MHz,8253的端口地址为40H,42H,44H,46H。通道0的输入时钟周期0.5μs,其最大定时时间为:0.5μs×65536 = 32.768ms,要产生频率为1Hz(周期= 1s)的方波,利用;一个通道无法实现。可用多个通道级连的方法,将通道0的输出OUT0作通道1的输入时钟信号。设通道0工作在方式2(频率发生器),输出脉冲周期= 10 ms,则通道0的计数值为20000(16位二进制)。周期为4 ms的脉冲作通道1的输入时钟,要求输出端OUT1输出方波且周期为1s,则通道1工作在方式3(方波发生器),计数值为100(8位;二进制)。硬件连接如图2-1。

微型计算机原理及应用试题库答案

微型计算机原理及应用试题库及答案 一、填空 1.数制转换 A)125D=( 11111101 )B =( 375 )O=( 0FD )H=(0001 0010 0101 )BCD B)10110110B=( 182 )D =( 266 )O=( 0B6 )H=(0001 1000 0010 )BCD 2.下述机器数形式可表示的数值范围是(请用十进制形式写出):单字节无符号整数0~255;单字节有符号整数-128~+127。 注:微型计算机的有符号整数机器码采用补码表示,单字节有符号整数的范围为-128~+127。 3.完成下列各式补码式的运算,并根据计算结果设置标志位SF、ZF、CF、OF。指出运算结果有 效否。 A)00101101+10011100= B)11011101+10110011= 4.十六进制数2B.4H转换为二进制数是__00101011.0100,转换为十进制数是__43.25____。 5.在浮点加法运算中,在尾数求和之前,一般需要(对阶)操作,求和之后还需要进行(规格化) 和舍入等步骤。 6.三态门有三种输出状态:高电平、低电平、(高阻)状态。 7.字符“A”的ASCII码为41H,因而字符“E”的ASCII码为(45H),前面加上偶校验位后代 码为(C5)H。 8.数在计算机中的二进制表示形式称为(机器数)。 9.在计算机中,无符号书最常用于表示(地址)。 10.正数的反码与原码(相等)。 11.在计算机中浮点数的表示形式有(阶码)和(尾码)两部分组成。 12.微处理器中对每个字所包含的二进制位数叫(字长)。 13.MISP是微处理的主要指标之一,它表示微处理器在1秒钟内可执行多少(百万条指令) 14.PC机主存储器状基本存储单元的长度是(字节). 15.一台计算机所用的二进制代码的位数称为___字长_________,8位二进制数称为__ 字节____。 16.微型计算机由(微处理器)、(存储器)和(I/O接口电路)组成。 17.8086CPU寄存器中负责与I/O端口交换数据的寄存器为(AX,AL) 18.总线有数据总线、地址总线、控制总线组成,数据总线是从微处理器向内存储器、I/O接口 传送数据的通路;反之,它也是从内存储器、I/O接口向微处理器传送数据的通路,因而它可以在两个方向上往返传送数据,称为(双向总线)。 19.一个微机系统所具有的物理地址空间是由(地址线的条数)决定的,8086系统的物理地址空间 为(1M)字节。 20.运算器包括算术逻辑部件(ALU),用来对数据进行算术、逻辑运算,运算结果的一些特征由 (标志寄存器)存储。 21.控制寄存器包括指令寄存器、指令译码器以及定时与控制电路。根据(指令译码)的结果, 以一定的时序发出相应的控制信号,用来控制指令的执行。 22.根据功能不同,8086的标志为可分为(控制)标志和(状态)标志位。 23.8086/8088CPU内部有(14)个(16位)的寄存器。 24.在8086/8088的16位寄存器中,有(4)各寄存器可拆分为8位寄存器使用。他们是 (AX,BX,CX,DX),他们又被称为(通用寄存器)。 25.8086/8088构成的微机中,每个主存单元对应两种地址(物理地址)和(逻辑地址)。 26.物理地址是指实际的(20)为主存储单元地址,每个存储单元对应唯一的物理地址,其范围 是(00000H-FFFFFH)。

微机原理及应用(广西大学)

微机原理期末复习要点(必看) 一、填空题(每空1分,共30分) 1、CPU访问存储器时,在地址总线上送出的地址称为物理地址。 2、80X86系统中,执行指令PUSH AX后,SP= SP-2 ;若执行指令POP AX 后,SP= SP+2 。 3、指令“MOV AX,2000H”源操作数的寻址方式为立即数 ;指令“MOV AX,[BX+SI+6]”源操作数的寻址方式为带偏移量的基础加变址。 4、设(DS)=24EOH,(SS)=2410H,(ES)=2510H,(DI)=0206H,则指令“MOV AX,[DI+100H]”源操作数的有效地址为 0306H ,物理地址为 25106H 。 5、80486可访问两个独立的地址空间,一个为I/O地址空间,其大小为 64K 字节。 6、执行指令“XOR AX,AX”后,标志位ZF的值为 1 。 7、若(AL)=10011000B,(BL)=01100111B,则执行指令“ADD AL,BL”后,(AL)=11111111B;执行指令“AND AL,BL”后,(AL)= 0 。 8、可屏蔽中断从CPU的 INTR 引脚进入,只有当中断允许标志IF为 1 时,该中断才能得到响应。 9、中断向量表存放在从 00000H 至 003FFH 存储空间中。 10、在实地址方式下,中断类型号为20H的中断所对应的中断向量,存放在内存 从 00080H 开始的四个连续字节单元中,若这四个字节单元的内容由低地址到 高地址依次为00H,50H,00H,60H,则中断服务程序的入口地址 65000H 。 11、80X86的I/O指令中,要寻址的16位的端口地址存放在 DX 中。 12、现要用6116静态RAM芯片构成8K×32位的存储器,此种芯片共需16 片。 13、8255A在“方式1输出”与外设之间的一对"握手"信号是 ACK和OBF 。 14、由实地址方式上,由逻辑地址获得物理地址的计算公式为:

(微机原理及应用)编程题试题集

重庆科技学院试卷库系统试卷库导出试卷 微机原理及应用-编程题(43题) 题序:0017题型:06难度:01分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX和DA TAY两个字数据相乘(用MUL)。答案: 解:(1) MOV AX, DATAX MUL DATAY MOV DATAY,AX MOV DATAY+2,DX 题序:0018题型:06难度:02分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX除以23(用DIV)。 答案: 解:(1) MOV AX, DATAX MOV BL, 23 DIV BL MOV BL,AH

MOV AH, 0 MOV DATAY, AX 。存放商 MOV AL,BL MOV DATAY+2, DX 。存放余数 题序:0002题型:06难度:03分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 试编写一个程序段,实现将BX中的数除以10,结果仍放在BX中。 答案: 解: MOV CL,0AH MOV AX,BX DIV CL MOV BX,AX 题序:0016题型:06难度:03分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX和DA TAY中的两个双字数据相加, 和存放在DA TAY和答案: 解:(1) MOV AX, DATAX ADD AX, DATAY MOV BX, DATAX+2 ADD BX, DATAY+2 MOV DATAY, AX MOV DATAY+2, BX

微型计算机原理与应用_第四版_课后答案_(郑学坚_朱定华)

微机原理第七章答案 7.3 设AX=1122,BX=3344H,CX=5566H,SS=095BH,SP=0040H,下述程序执行 后AX ,BX ,CX ,DX 4个通用寄存器内容是多少?画出堆栈存储器的物理地址及存储内容和SP 指向的示意图。 PUSH AX PUSH BX PUSH CX POP BX POP AX POP DX 参考答案:(BX)=5566H, (AX)=3344H, (DX)=1122H ,(CX)=5566H 堆栈段物理地址=SS*16(左移4位)+SP

7.4 设SP=0040H,如果用进栈指令存入5个数据,则SP=0036H,若用出栈指令取出两个数据,则SP=003AH 。 7.5将表中程序段各指令执行后AX的值用十六进制数填入表中 参考答案: 7.6用十六进制数填下表,已知DS=1000H,ES=2000H,SS=0FC0H,通用寄存器的值为0。 参考答案:逻辑地址=段基址:段内偏移地址 BP以SS为默认段基址,其余寄存器以DS为默认段基址 ES:为段前缀,以ES为段基址

7.7 试给出执行完下列指令后OF、SF、ZF、CF4个可测试标志位的状态(用十六进制给出FLAG的值,其余各位为0) (1)MOV AX,2345H (2) MOV BX,5439H ADD AX,3219H ADD BX,456AH (3)MOV CX,3579H (4) MOV DX,9D82H SUB CX,4EC1H SUB DX,4B5FH

参考答案:(这里除了上面4个标志还考虑了奇偶标志PF和辅助进位标志AF)(1)AX=555EH FLAG=0000H (2)BX=99A3H FLAG=0894H (3)CX=E6B8 FLAG=0081H (4)DX=5223 FLAG=0014H 7.8AX 中有一负数,欲求其绝对值,若该数为补码,则使用指令NEG AX;若为原码则用指令AND AX,7FFFH。。 7.9 分别写出实现如下功能的程序段: (1)将AX中间8位(做高8位),BX低4位和DX高4位(做低4位)拼成一个新字。(注意:左移右移操作) AND AX,0FF0H MOV CL,04H

最新微型计算机原理及应用知识点总结

微型计算机原理及应用知识点总结

第一章计算机系统 一、微机系统的基本组成 1.微型计算机系统由硬件和软件两个部分组成。 (1)硬件: ①冯●诺依曼计算机体系结构的五个组成部分:运算器,控制器,存储器,输入设备,输入设备。其特点是以运算器为中心。 ②现代主流的微机是由冯●诺依曼型改进的,以存储器为中心。 ③冯●诺依曼计算机基本特点: 核心思想:存储程序; 基本部件:五大部件; 信息存储方式:二进制; 命令方式:操作码(功能)+地址码(地址),统称机器指令; 工作方式:按地址顺序自动执行指令。 (2)软件: 系统软件:操作系统、数据库、编译软件 应用软件:文字处理、信息管理(MIS)、控制软件 二、系统结构 系统总线可分为3类:数据总线 DB(Data Bus),地址总线 AB(Address Bus),控制总线 CB(Control Bus)。 根据总线结构组织方式不同,可分为单总线、双总线和双重总线3类。

总线特点:连接或扩展非常灵活, 有更大的灵活性和更好的可扩展 性。 三、工作过程 微机的工作过程就是程序的执行过 程,即不断地从存储器中取出指令,然后执行指令的过程。 ★例:让计算机实现以下任务:计算100+100H=?并将结果保存在16920H的字单元内。 编程运行条件: CS=1000H,IP=100H,DS=1492H 将机器指令装入计算机的存储器 计算机自动地进行计算(执行) 计算机工作过程大致描述: (1)分别从CS和IP寄存器中取出1000和100经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第一条汇编指令的第一个机器指令为B8,对应的地址为10100H;将B8取出,通过总线和指令队列到达执行部分电路控制,给CPU发出信号。

微机原理与应用作业答案

1. 若二进制数为 ,则该数的十进制表示为( B : )。 2. 为二进制补码,该数的真值为( C +58 )。 3. 01000110为二进制补码, 该数的真值为( A +70 )。 4. 8位二进制数的原码表示范围为( C -127 ~ +127 )。 5. n 位二进制数的原码表示范围为( C 12~1211-++---n n )。 6. 8位二进制数的反码表值范围为( C -127~ +127 )。 7. n 位二进制数的反码表示范围为( C 12~1211-++---n n )。 8. 8位二进制数的补码表值范围为( B -128 ~ +127 )。 9. n 位二进制数的补码表示范围为( B 12~211-+---n n )。 10. 8位二进制数的无符号数表值范围为( A 0 ~ 255 )。 11. 决定计算机主要性能的是( A 中央处理器 )。 12. M I P S 用来描述计算机的运算速度,含义是( C 每秒执行百万条指令 )。 13. 完整的计算机系统应包括( D 硬件设备和软件系统)。 14. 计算机硬件主要由C P U 、内存、I /O 设备和( B 三总线 )组成。 15. 包含在8086C P U 芯片内部的是( A 算术逻辑单元)。 16. 在机器数( B 补码)中,零的表示形式是惟一的。 17. 程序计数器P C 的作用是( A 保存将要执行的下一条指令的地址)。 18. 8086当前被执行的指令存放在( D CS :IP )。 19. 运算器执行两个补码表示的整数加法时,产生溢出的正确叙述为( D 相加结果的符号位与两同号加数的符号位相反则产生溢出)。 20. 8086中,存储器物理地址形成算法是( B 段地址左移4位/16/10H+偏移地址 )。 21. 下列逻辑地址中对应不同的物理地址的是( 03E0H :0740H )。 A :0400H :0340H B :0420H :0140H D :03C0H :0740H 22. 存储字长是指( B 存储单元中二进制代码个数)。 23. 8086系统中,每个逻辑段的最多存储单元数为( C 64KB )。 24. 若某C P U 具有64G B 的寻址能力,则该C P U 的地址总线宽度为( 36 )。 25. 下列数中最小的数是( A (1011011)2 )。 26. 指令队列具有( D 暂存预取指令 )的作用。 27. 指令队列工作方式为( A 先进先出 )。 28. 堆栈存储器存取数据的方式是( C 先进后出)。 29. 8086系统中,一个栈可用的最大存储空间是( B 64KB )。 30. 8086C P U 有( C 8 )个8位的通用寄存器。 31. 8086C P U 共有( D 14)个16位寄存器。 32. 某补码表示的8位二进制整数由5个1和3个0组成,则其可表示的最小值是 ( A -113 )。 33. 16个字数据存储区的首址为70A 0H :D D F 6H ,末字单元的物理地址为( C :7E814H )。 34. 8个字节数据存储区的首址为70A 0H :D D F 6H ,末字节单元的物理地址为( D :7E7FDH )。 35. 用M B 表示存储器容量时,1M B 等于( C 220个字节)。 1. 8086与外设进行数据交换时,常会在( T 3 )后进入等待周期T w 。 2. 下列说法中属于最小工作模式特点的是( A CPU 提供全部的控制信号)。 3. 下列说法中属于最大工作模式特点的是( C 需要总线控制器8288 )。 4. 8086 C P U 中,需要( B 2 )片数据总线收发器芯片8286。 5. 8086C P U 中,需要( C 3 )片地址锁存器芯片8282。 6. 从8086存储器中读取非规则字需要( B 2 )个总线周期。 7. 从8086存储器中读取奇地址存储的字节需要( A :1 )个总线周期。 8. 下列说法中,不正确的是( C 栈底是堆栈地址较小的一端)。 9. 在8086系统中,用控制线( D M/IO )实现对存储器和I /O 接口的选择。 10. C P U 对存储器访问时,地址线和数据线的有效时间关系为( B 地址线先有效)。 11. 8086 C P U 共有( D 21 )根分时复用总线。

微机原理及应用 第4章 习题及答案

CH04 存储系统 习题与思考题 1.存储器的哪一部分用来存储程序指令及像常数和查找表一类的固定不变的信息?哪一部分用来存储经常改变的数据? 解答:只读存储器ROM;随机存储器RAM。 2.术语“非易失性存储器”是什么意思?PROM和EPROM分别代表什么意思? 解答:“非易失性存储器”是指当停电后信息会丢失;PROM--可编程序的只读存储器PROM(Programmable ROM),EPROM--可擦除的可编程的只读存储器EPROM(Erasible Programmable ROM)。 3.微型计算机中常用的存储器有哪些?它们各有何特点?分别适用于哪些场合? 解答: 双极型半导体存储器 随机存储器(RAM) MOS存储器(静态、动态) 主存储器可编程只读存储器PROM 可擦除可编程只读存储器EPROM,EEPROM 只读存储器(ROM)掩膜型只读存储器MROM 快擦型存储器 存储器磁盘(软盘、硬盘、盘组)存储器 辅助存储器磁带存储器 光盘存储器 缓冲存储器 4.现代计算机中的存储器系统采用了哪三级分级结构,主要用于解决存储器中存在的哪些问题? 解答:目前在计算机系统中通常采用三级存储器结构,即使用高速缓冲存储器、主存储器和辅助存储器,由这三者构成一个统一的存储系统。从整体看,其速度接近高速缓存的速度,其容量接近辅存的容量,而位成本则接近廉价慢速的辅存平均价格。三级结构主要用于解决速度、容量和成本的问题。 5.试比较静态RAM和动态RAM的优缺点,并说明有何种方法可解决掉电时动态RAM中信息的保护。 解答:静态RAM----存储一位信息的单元电路可以用双极型器件构成,也可用MOS器件构成。双极型器件构成的电路存取速度快,但工艺复杂,集成度低,功耗大,一般较少使用这种电路,而采用MOS器件构成的电路。静态RAM的单元电路通常是由6个MOS 管子组成的双稳态触发器电路,可以用来存储信息“0”或者“1”,只要不掉电,“0” 或“1”状态能一直保持,除非重新通过写操作写入新的数据。同样对存储器单元信息的读出过程也是非破坏性的,读出操作后,所保存的信息不变。使用静态RAM的优点是访问速度快,访问周期达20~40ns。静态RAM工作稳定,不需要进行刷新,外部电

微型计算机原理及应用课后习题解答

李伯成《微机原理》习题第一章 本章作业参考书目: ①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》 机械工业出版社2002年2月第一版 ②陆一倩编《微型计算机原理及其应用(十六位微型机)》 哈尔滨工业大学出版社1994年8月第四版 ③王永山等编《微型计算机原理与应用》 西安电子科技大学出版社2000年9月 1.1将下列二进制数转换成十进制数: X=10010110B= 1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21 =128D+0D+0D+16D+0D+0D+4D+2D=150D X=101101100B =1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20 =256D+0D+64D+32D+0D+16D+4D+0D=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.2 将下列二进制小数转换成十进制数: (1)X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D (2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D (3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D 1.3 将下列十进制整数转换成二进制数: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 将下列十进制小数转换成二进制数: (1)X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D

微机原理及应用试题

名姓 号学 级班 系 院学 扬州大学试题纸 (2009 —2010学年第1学期) 广陵学院07班(年)级课程微机原理及应用(A)卷 题目-一一-——二■——三四五总分 得分 阅卷人 分 ) 1 得分阅卷人审核人、选择题 (20%,每题 1. 以程序存储和程序控制为基础的计算机结构提出者是(B ) A.布尔 B. 冯?诺依曼 C.图灵 D. 帕斯卡尔 2. 十进制数95转换成二进制数是(D ) A.10010101 B.01100101 C. 0100110 D.01011111 3.大写字母C的ASCII码是(C ) A. 11001100B B. 00001100B C. 01000011B D.01000111B 4?在微机中,主机和高速硬盘进行数据交换,一般采用的方式是(D ) A.程序直接控制方式 B. 程序中断控制方式 C.无条件传送方式 D. DMA 方式 5?将寄存器AX的内容求反的正确指令是(C ) A. NEG AX B. CMP AX,0FFFFH C. NOT AX D. CMP AX , AX 6.指令MOV ARRAY[DI], DX 源操作数的寻址方式是(B ) A.变址寻址 B. 寄存器寻址 C.基址寻址 D. 基址变址寻址 7. 8086/8088 响应不可屏蔽中断时,其中断类型号是(A ) A.由CPU自动产生 B. 从外设取得 C.由指令INT给出 D. 由中断控制器提供 8.8086指令队列的长度是(C ) A. 4个字节 B.5 个字节 C.6 个字节 D.8 9.在最小模式下,CPU从外设读取数据操作, M / IO、WR、 个字节 RD信号的状态依次为(A ) A. 0 , 1, 0 B. 0 ,三态,0 C. 0 , 0, 1 D. 1 , 1, 0 10.在8086系统中,CPU被启动后,IP及四个段寄存器的初始状态是 (D )

微型计算机原理与应用试题库答案

《微型计算机原理及应用》试题库及答案 一、填空 1.数制转换 A)125D=(0111 1101 )B =(175 )O=(7D )H=(0001 0010 0101 )BCD B)10110110B=(182 )D =(266)O=(B6 )H=(0001 1000 0010)BCD 2.下述机器数形式可表示的数值范围是(请用十进制形式写出):单字节无符号整数0~ 255 ;单字节有符号整数-127 ~127 。 (注:微型计算机的有符号整数机器码采用补码表示,单字节有符号整数的范围为-128~+127。)3.完成下列各式补码式的运算,并根据计算结果设置标志位SF、ZF、CF、OF。指出运算结果 有效否。 A)00101101+10011100=11001001B SF=1 ZF=0 CF=0 OF=0 B)11011101+10110011=10010000B SF=1 ZF=0 CF=1 OF=0 4.十六进制数2B.4H转换为二进制数是_0010 1011.0100B ,转换为十进制数是_43.25。 5.在浮点加法运算中,在尾数求和之前,一般需要操作,求和之后还需要进行和 舍入等步骤。 6.三态门有三种输出状态:低电平、高电平、高阻态状态。 7.字符“A”的ASCII码为41H,因而字符“E”的ASCII码为45H ,前面加上偶 校验位后代码为。 8.数在计算机中的二进制表示形式称为机器数。 9.在计算机中,无符号书最常用于表示。 10.正数的反码与原码相等。 11.在计算机中浮点数的表示形式有整数和小数两部分组成。 12.微处理器中对每个字所包含的二进制位数叫字节。 13.MISP是微处理的主要指标之一,它表示微处理器在1秒钟内可执行多少

微机原理及应用

《微机原理及应用》 实训指导书 山东科技大学泰山科技学院

目 录 一、实训性质 (1) 二、实训目标 (1) 三、实训基本要求 (1) 四、实训过程要求 (1) 五、实训题目 (2) 实训一 学生成绩统计 (2) 实训二 打字游戏 (3) 实训三 乒乓球比赛游戏机 (3) 实训四 交通灯控制 (4) 实训五 反应测试仪 (5) 实训六 电子琴 (5) 实训七 猜数字游戏 (6) 实训八 微秒计时器 (6) 实训九 参数可调波形发生器 (6) 实训十 模拟电梯 (7) 实训十一 多通道温度采集与显示系统 (8) 试验十二 计算机串行通信接口的设计与应用 (8) 实训十三 流水线模拟监视器 (8) 实训十四 数据传送显示 (9)

一、实训性质 《微机原理及应用》实训教学是学生在完成《微机原理及应用》理论学习之后,为培养学生 的动手能力而必须完成的实践性教学环节。在进行本教学环节之前,学生应具备《微机原理及应 用》的理论基础知识。 二、实训目标 《微机原理及应用》实训的教学让学生通过接触客观实际,来了解和认识所学的专业知识, 让学生了解和掌握所学知识在客观实际中的应用,通过实训课可以使学生了解解决实际问题的过 程,并能亲自动手完成相关题目设计。让学生对实际课题设计的过程和方法有个很好的认识,又 能亲自动手来锻炼提高专业技能,把所学的理论知识与实际能力紧密的结合在一起。 在进行实训的同时,教师应培养学生具有初步的科研意识,培养学生查找资料、运用设计资 料,完成工程问题的能力,为后继课程的学习打下坚实的基础。 三、实训基本要求 为检验学生在原理与接口综合应用方面分析问题与解决问题的能力,同时亦给学生提供更 多、更好的训练机会,本指导书给出了微机硬件应用综合测试题。大部分测试题,至少需要选用 PC 总线微机实验装置中 3 部分以上的硬件电路(还需将它们有机组合起来)并编制相应的应用软 件。为了发挥每一个同学的创造能力,每一测试题除了题目外仅给出设计要求(又分基本要求与 进一步要求两部分)及很少的设计提示。学生可根据设计要求,选择最合适的器件,构成最有效 的硬件电路来完成。对于学有余力的学生,除了完成基本要求与进一步要求的内容外,还可对同 一题选择不同的器件(而这往往总是能做到的)构成不同的硬件电路,尽情发挥和创造。 四、实训过程要求 1.软件部分 对软件部分,建议按如下的步骤进行: (1)首先正确理解题意及题目要求,分析程序设计思想; (2)建立算法,绘制流程图; (3)再根据算法流程图编写程序;

微机原理及应用试题

扬州大学试题纸Array ( 2009-2010学年第1学期) 广陵学院07 班(年)级课程微机原理及应用 (A)卷 1. 以程序存储和程序控制为基础的计算机结构提出者是(B ) A.布尔 B.冯﹒诺依曼 C.图灵 D.帕斯卡尔 2.十进制数95转换成二进制数是(D ) A. 10010101 B. 01100101 C. 0100110 D. 01011111 3.大写字母C的ASCII码是(C ) A. 11001100B B. 00001100B C. 01000011B D. 01000111B 4.在微机中,主机和高速硬盘进行数据交换,一般采用的方式是( D) A. 程序直接控制方式 B. 程序中断控制方式 C. 无条件传送方式 D. DMA方式 5.将寄存器AX的内容求反的正确指令是( C ) A. NEG AX B. CMP AX,0FFFFH C. NOT AX D. CMP AX,AX 6. 指令MOV ARRAY[DI],DX 源操作数的寻址方式是(B ) A.变址寻址 B.寄存器寻址 C.基址寻址 D.基址变址寻址 7. 8086/8088响应不可屏蔽中断时,其中断类型号是(A ) A.由CPU自动产生 B.从外设取得 C.由指令INT给出 D.由中断控制器提供 8.8086指令队列的长度是 ( C ) A. 4个字节 B.5个字节 C.6个字节 D.8个字节 M/、WR、RD信号的状态依次9. 在最小模式下,CPU从外设读取数据操作,IO 为( A ) A. 0,1,0 B. 0,三态,0 C. 0,0,1 D. 1,1,0 10.在8086系统中,CPU被启动后,IP及四个段寄存器的初始状态是(D )

微机原理与应用

《微机原理与应用(1)》复习资料 一、填空 1、指令格式是指指令码的结构形式。通常,指令可以分为操作码和操作数两部分。 2、RST为8031的复位端,高电平有效,INC 指令的功能是自加1。 3、数据指针DPTR是一个(16)位的特殊功能寄存器,其高位字节寄存器用(DPH)表示,低位字节寄存器用(DPL)表示. 4、MOVC A,@A+DPTR指令中,源操作数在__程序_____存储区。 MOVX A,@DPTR 指令中,源操作数在____数据____存储区。 5、8031的异步通信口为全双工(单工/半双工/全双工) 6、P0口是一个 8 位漏极开路型双向I/O端口.在访问片外存储器时,它分时提供低8位地址和8位双向数据,故P0 的I/O线有地址线/数据线之称. 7、通用寄存器B是专门为乘除法设置的寄存器。在除法运算执行后,商存于累加器A 中,余数存于寄存器B 中。 8、MCS-51的堆栈只可设置在堆栈区,堆栈寄存器sp是 8 位寄存器。 9、MCS-51的I/O接口分为串行接口和并行接口两种,它是连接CPU和外设的桥梁。 10. MCS-51有 5 中断源,有 2 中断优先级,优先级由软件填写特殊功能寄存器 IP加以选择。 11、MOV A,@R0 指令对于源超作数的寻址方式是寄存器间接寻址。 12、已知fosc=12MHz, T0作为定时器使用时,其定时时间间隔为1us。 13、在MCS-51中查表时的数据表格是存放在 ROM 而不是存放在 RAM ,在编程时可以通过伪指令DB来定义。 14、8255可以扩展 3 个并行口,其中 8 条口线具有位操作功能。 二、选择题 1.单片机中的程序计数器PC用来 C 。 A.存放指令 B.存放正在执行的指令地址 C.存放下一条指令地址 D.存放上一条指令地址 2.8051单片机上电复位后,堆栈区的最大允许范围是内部RAM的 D 。 A.00H—FFH B.00H—07H C.07H—7FH D.08H—7FH 3.8051单片机的定时器T0用作定时方式时是 D 。 A.由内部时钟频率定时,一个时钟周期加1 B.由外部计数脉冲计数,一个机器周期加1 C.外部定时脉冲由T0(P3.4)输入定时 D.由内部时钟频率计数,一个机器周期加1 4.MCS-51单片机在同一级别里除INT0外,级别最高的中断源是 B 。 A.外部中断1 B.定时器T0 C.定时器T1 5.已知A=87H ,(30H)=76H,执行 XRL A,30H 后,其结果为: C 。 A.A=F1H (30H)=76H P=0 B.A=87H (30H)=76H P=1 C.A=F1H (30H)=76H P=1 D.A=76H (30H)=87H P=1 6、MCS-51单片机的堆栈区应建立在( C )。 A. 片内数据存储区的低128字节单元 B. 片内数据存储区 C.片内数据存储区的高128字节单元 D.程序存储区 7、MCS-51单片机定时器工作方式0是指的( C )工作方式。 A.8位 B.8位自动重装 C.13位 D.16位 8、当需要从MCS-51单片机程序存储器取数据时,采用的指令为( B )。 A.MOV A, @R1 B.MOVC A, @A + DPTR C.MOVX A, @ R0 D.MOVX A, @ DPTR 9.MCS-51单片机在同一级别里除INT0外,级别最高的中断源是( B )。 A.外部中断1 B.定时器T0 C.定时器T1 D.外部中断0 10.已知A=87H ,(30H)=76H,执行 XRL A,30H 后,其结果为:( C )。 A.A=F1H (30H)=76H P=0 B.A=87H (30H)=76H P=1 C.A=F1H (30H)=76H P=1 D.A=76H

微机原理与应用(B)

微机原理与应用模拟题2 一、填空题 可编程串行接口芯片8251A的复位方法有(); 中断控制器8259A 在非缓冲方式下级连时,主控器通过( )向从控器传送识别码ID,以便选中某一从控器; CRT字符发生器的高位地址是来自VRAM的(); RS-485与RS-422的主要区别是RS-485允许有( ); 分辩率为10位,输出满度5V的D/A转换器,最小数字量变化可产生( )V模拟量变化; 非可编程接口的输入端口常由( )构成; 8255A的C口最多可以传送( )位并行数据; 8237A的三种DMA操作类型是( );8253的3方式具有自动装入计数初值功能,一旦计数开始,就会输出连续的();非自动中断结束时,从片8259A在中断服务程序最后须发()个EOI命令;DMA控制器8237A的当前字节计数器存放();串行外设与CPU 的接口应具有数据的()转换功能; 二、判断题 1.所有外设的中断请求都是通过硬件传送给CPU的. ( ) 2.8255A在方式0下A口可以双向传送数据. ( ) 3.启动A/D转换的输出指令可输出任意值. ( ) 4.所有串行接口的串、并之间的转换是通过程序实现的. ( ) 5.CPU对外设的读写周期通常与系统时钟速度无关. ( ) 6.RS-232C标准接口经电平转换后便可长距离传送信息. ( ) 7.RS-422的平衡式传输线上消除了噪声信号. ( ) 8.查询8251A的TXRDY状态位或由TXRDY引脚产生中断,均可避免数据丢失.( ) 三、简答题 1.端口的统一编址和独立编址的主要区别是什么? 2.简述8253的计数通道工作原理。 3.各种中断的类型号是如何提供的? 4.8259A级连方式下的非自动结束中断在完成中断时为何要发两个EOI命令? 5.8255A的STB信号由谁产生,何时产生,有何作用? 6.简述波特率、字符速率及波特率因子的含义。 7.多路模拟开关和采样保持器有何用? 8.DMAC处于主动工作方式时都执行了哪些状态周期,各有何用? 参考答案: 1.答:前者端口与存储器同用一个地址空间,无专用的I/O指令;后者端口与存储器各用自己的地址空间,有专用的I/O指令。 2.答:首先将16位计数初值寄存器装入初值,若门控信号(GATE)有效,则在时钟信号(CLK)作用下对16位减一计数器减一计数,减一至零时输出OUT信号。减一计数器的内容可锁存到当前计数值锁存器后读出。 3.答:外部可屏蔽中断(INT)由中断控制器提供;指令中断由指令直接提供;外部非屏蔽中断(NMI)和操作引起的中断则产生固定的类型号。 4.答:一个给主片,一个给从片。 5.答:在输入时由外设产生。当外设将数据送上数据线后该信号有效,可将数据锁入

(完整版)微机原理及应用试题库

电气工程及其自动化专业《微机原理及应用》试题 一、填空题(每空1分) 1. 微型计算机系统的主要性能指标有:字长、存储容量、指令系统、运算速度、系统配置。 2.微型计算机系统硬件包括:运算器、控制器、存储器、输入设备、输出设备等部 件,这些部件通过数据总线、地址总线、控制总线相连接。 3. 8086的标志寄存器中控制标志有:IF、DF、TF。 4. 8086的标志寄存器中状态标志有: CF 、 AF 、 ZF 、 PF 、 SF 、 OF 。 5. 随机存储器RAM可分为双极型和 MOS型两大类。 6. 只读存储器ROM可分为:ROM、PROM、EPROM、EEPROM。 7. 8255A是可编程并行输入/输出接口,它有3个8位端口,3种工作方式。 8. 8253是可编程定时器/计数器,它有 3 个计数通道, 6 种工作方式。 9. 串行通信中的数据传送模式有:单工,半双工,全双工。 10. 串行通信中最基本的通信方式:异步通信,同步通信。 11. ADC0809有 8 个模拟量输入信号,可用 3 位地址信号控制,有 8 位数据输出。 12. DAC0832是可编程数/模转换器,有8位数字量输入信号,2个模拟量输出信号,可设置3 种工作方式。 13. 8259A是可编程中断控制器,它有 4 个初始化命令字, 3 个操作命令字。 14.汇编语言指令语句格式: [标号:]操作码助记符[操作数1][,操作数2][;注释] 15.CPU和输入/输出设备之间传送的信息有数据信息、状态信息、控制信息。 16. 串行通信中信号传输时的调制解调方式有:调频、调幅、调相。 17. DAC0832可工作在直通、单缓冲、双缓冲三种方式。 18.地址译码的方式有线译码、部分译码、全译码三种。 19.RS-232C串行通信接口T X D和R X D信号的电气性能中“1”= -3~-25V ;“0”= +3~+25V 。20.8237是可编程DMA控制器,它有 4个独立的DMA 通道。 21. 8253每个计数器有 2 种计数方式,计数范围分别为: BCD 0~9999 ;二进制 0~FFFFH 。22.TTL电平经 1488 转换为RS-232C电平,RS-232C电平经 1489 转换为TTL电平。 23. 8086处理器的基本数据类型是字节、字、双字。 24. 8086指令的操作数寻址方式有:立即数、寄存器、存储单元、 I/O端口。25.常见A/D转换器的类型有:并行比较型、双积分型、逐次比较型。 26. 一个计算机系统所具有的物理地址空间的大小是由地址总线的宽度决定的,8086系统的物 理空间的地址为 1M 。 27. 8086EU的主要部件有算术逻辑单元寄存器组,主要完成编码和运算工作。 28. 堆栈段的基值存入 SS 寄存器,数据段的基值存入 DS 寄存器,代码段的基值存于 CS 寄 存器,扩展段的基值存入 ES 寄存器。 29. 8086CPU引脚中,用来控制8086工作方式的引脚为 MN/MX 。 30. 8086CPU引脚中BP默认的段寄存器是(SS),BX默认的段存器是(DS)。

微机原理与应用作业答案知识讲解

微机原理与应用作业 答案

1. 若二进制数为 010111.101,则该数的十进制表示为( B :23.625 )。 2. 11000110为二进制补码,该数的真值为( C +58 )。 3. 01000110为二进制补码, 该数的真值为( A +70 )。 4. 8位二进制数的原码表示范围为( C -127 ~ +127 )。 5. n 位二进制数的原码表示范围为( C 12~1211-++---n n )。 6. 8位二进制数的反码表值范围为( C -127~ +127 )。 7. n 位二进制数的反码表示范围为( C 12~1211-++---n n )。 8. 8位二进制数的补码表值范围为( B -128 ~ +127 )。 9. n 位二进制数的补码表示范围为( B 12~211-+---n n )。 10. 8位二进制数的无符号数表值范围为( A 0 ~ 255 )。 11. 决定计算机主要性能的是( A 中央处理器 )。 12. M I P S 用来描述计算机的运算速度,含义是( C 每秒执行百万条指令 )。 13. 完整的计算机系统应包括( D 硬件设备和软件系统)。 14. 计算机硬件主要由C P U 、内存、I /O 设备和( B 三总线 )组成。 15. 包含在8086C P U 芯片内部的是( A 算术逻辑单元)。 16. 在机器数( B 补码)中,零的表示形式是惟一的。 17. 程序计数器P C 的作用是( A 保存将要执行的下一条指令的地址)。 18. 8086当前被执行的指令存放在( D CS :IP )。 19. 运算器执行两个补码表示的整数加法时,产生溢出的正确叙述为( D 相加结果的符号位与两 同号加数的符号位相反则产生溢出)。 20. 8086中,存储器物理地址形成算法是( B 段地址左移4位/16/10H+偏移地址 )。 21. 下列逻辑地址中对应不同的物理地址的是( 03E0H :0740H )。 A :0400H :0340H B :0420H :0140H D :03C0H :0740H 22. 存储字长是指( B 存储单元中二进制代码个数)。 23. 8086系统中,每个逻辑段的最多存储单元数为( C 64KB )。

相关主题
文本预览
相关文档 最新文档