搜档网
当前位置:搜档网 › 微机原理作业答案

微机原理作业答案

微机原理作业答案
微机原理作业答案

第一章计算机基础(P32)

1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。

1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.

1-3写出下列机器数的真值:

(1)01101110 (2)10001101

(3)01011001 (4)11001110

答案:

(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)

1-4写出下列二进制数的原码、反码和补码(设字长为8位):

(1)+010111 (2)+101011

(3)-101000 (4)-111111

答案:

(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111

(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011

(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000

(4)[x]原=10111111 [x]反= 11000000 [x]补=11000001

1-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?

(1)00001110 表示原码14,反码14,表示补码为14

(2)11111111 表示原码-127,反码-0,表示补码为-1

(3)10000000 表示原码-0,反码-127,表示补码为-128

(4)10000001 表示原码-1,反码-126,表示补码为-127

1-6 已知x1=+0010100,y1=+0100001,x2=-0010100,y2=-0100001,试计算下列各式。(字长8位)

(1)[x1+y1]补(2)[x1-y2]补

(3)[x2-y2]补(4)[x2+y2]补

(5)[x1+2*y2]补(6)[x2+y2/8]补

答案:

(1)[x1+y1]补=[00010100+00100001]补=[00110101]补=00110101

(2)[x1-y2]补=[x1]补+[-y2]补=00010100+00100001=00110101

(3)[x2-y2]补=[x2]补+[-y2]补=11101100+00100001=00001101

(4)[x2+y2]补=[x2]补+[y2]补=11101100+11011111=11001011

(5)[x1+2*y2]补=[x1]补+[2*y2]补=00010100+10111110=11010010

(6)[x2+y2/8]补=11101100+[y2/8]补=11101100+11111100=11101000

1-7 用补码来完成下列运算,并判断有无溢出产生(字长为8位):

(1)85+60 (2)-85+60

(3)85-60 (4)-85-60

答案:

(1)[x]补+[y]补=01010101+00111100=10010001 = -111,有溢出

(2)[x]补+[y]补=10101011+00111100=11100111 =-25,无溢出

(3)[x]补+[y]补= 01010101+11000100=00011001 =25,无溢出

(4)[x]补+[y]补=10101011+11000100=01101111 =111,有溢出

1-8在微型计算机中存放的两个补码数,试用补码加法完成计算,并判断有无溢出产生。

(1)[x]补+[y]补=01001010+01100001=10101011

有溢出

(2)[x]补-[y]补=01101100-01010110 = 01101100+10101010=00010110无溢出

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

[-Y]补的算法:将[Y]补连同符号位一起按位取反加1

1-9 试将下列各数转换成BCD码:

(1)(30)10 (2)(127)10

(3)00100010B (4)74H

答案:

(1)(30)10 = (0011 0000)BCD

(2)(127)10 = (0001 0010 0111)BCD

(3)00100010B = 34 = (0011 0100)BCD

(4)74H = (116)10 = (0001 0001 0110)BCD

1-10 下列各数代表什么ASCII字符:

(1)41H (2) 72H

(3) 65H (4) 20H

答案:

(1)41H =(0100 0001)2,代表字符A。

(2)72H = (0111 0010)2,代表字符r。

(3)65H = (0110 0101)2,代表字符e。

(4)20H = (32)10 = (0010 0000)2, 代表SP。

1-11 写出下列字符的ASCII码:

9,*,=,!,$

答案: 9 0011 1001

* 0010 1010

= 0011 1101

! 0010 0001

$ 0010 0001

1-19 地址总线:传递地址信息的总线

数据总线:传输数据

控制总线:传输控制信号,时序信号和状态信息

1-20 指令:人们规定计算机执行特定操作(加、减、乘、除、移位……)的命令。指令系统:计算机全部指令的集合

第二章 80X86/Pentium微处理器(P90)

2-7 8086/8088有几位状态位?有几位控制位?其含义分别是什么?

答:8086/8088有6位状态位,3位控制位。

状态位:CF进位标志;PF奇偶标志;AF辅助进位标志;ZF零标志;SF符号标志,OF溢出标志。

控制位:IF 允许中断标志;DF方向标志;TF陷阱标志

2-15物理地址:存储区域的某一单元地址,地址信息是20位二进制代码. CPU 是以物理地址访问存储器.

逻辑地址:编程时采用,由段基址和偏移量组成.8086 CPU中的每个存储元在存储体中的位置都可以使用实际地址和逻辑地址来表示。同一物理地址可对应多个逻辑地址

2-16 段寄存器指示的存储区域的起始地址称为段基址,偏移量是在某段内指定存储单元到段基址的距离。段基址和偏移量共同组成物理地址,物理地址PA=段基地址×16 + 偏移量

2-17 A0000H-AFFFFh

2-18 B000H

2-20已知堆栈段寄存器SS=A000H,堆栈指示器SP=0100H,试将数据1234ABCDH 推入堆栈,画出进栈示意图。最后栈顶SP=?

答: SP=00FCH

物理地址 0A00FCH---0A00FFH的内容依次为CD,AB,34,12.

注:SP:堆栈栈顶指示器,16位寄存器,存放栈顶的偏移地址。

2-21 试求出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别。(1)1278H+3469H

(2)54E3H-27A0H

(3)3881H+3597H

(4)01E3H-01E3H

解:(1) 0001 0010 0111 1000

+ 0011 0100 0110 1001

0100 0110 1110 0001

CF=0 PF=1 AF=1 ZF=0 SF=0 OF=0

(2) 0101 0100 1110 0011

+ 1101 1000 0110 0000

1 0010 1101 0100 0011

CF=0 PF=0 AF=0 ZF=0 SF=0 OF=0

(3) 0011 1000 1000 0001

+ 0011 0101 1001 0111

0110 1110 0001 1000

CF=0 PF=1 AF=0 ZF=0 SF=0 OF=0

(4) 0000 0001 1110 0011

+ 1111 1110 0001 1101

1 0000 0000 0000 0000

CF=0 PF=1 AF=0 ZF=1 SF=0 OF=0

注:16位操作数的最低二进制位:b0、最高二进制位:b15

AF:看b3是否向b4有进(借)位:辅助进借位

对减法运算,若采用补码的加法进行,则CF取反。

第三章 80X86/Pentium指令系统(P135)

3-4 (1) 7237H (2) D5B4H (3)637DH

3-5寻址方式:

(1)MOV SI,2100H (2)MOV CX,DISP[BX]

(3)MOV [SI],AX (4)ADC AX,[BX][SI]

(5)AND AX,DX (6)MOV AX,[BX+10H]

(7)MOV AX,ES:[BX] (8)MOV AX,[BX+SI+20H]

(9)MOV [BP],CX (10)PUSH DS

地址表达式:标号/变量/常量+基址寄存器+变址寄存器

[地址表达式]:存储器操作数,以地址表达式的值为偏移地址

3-7 (4) (10) (14)正确。

3-8(1)AX=3355H, SP=1FFFEH

(2) AX=3355H, DX=4466H, SP=1FFFEH

3-9 BX=4154H,[2F246H]=6F30H

3-10 BX=139EH

3-11 SI= 0180H DS=2000H

3-12 (1) CL=0F6H

(2) CX=5678h

(3)BX=0056H, AX=1E40H

(4)SI=00F6H, [SI]=0024H

(5)AX=5678H, [09226H]=1234H

3-13 (1)不影响

(2)AF=0,CF=1 OF=1 SF=0 ZF=0

3-14 (1)MOV AX,0 XOR AX,AX SUB AX, AX

(2)MOV CL,4

ROR BL,CL

(3)MOV AX,N1

MOV BX,N1

CWD ;对被除数进行符号扩展

IDIV BX

MOV M1,AX ;商放在AX中

MOV M2,DX ;余数放在DX中

(4) AND BX,0F7AFH 或OR 0850H

(5) XOR AX 4020H

(6) TEST DX,0201H

(7) OR CX,1

3-15 (1)LEA BX,BLOCK

MOV BX,BX+10

MOV AX,[BX]

(2)LEA BX ,BLOCK

MOV AX,[BX+10]

(3)LEA BX,BLOCK

MOV SI,10

MOV AX,[BX+SI]

(4) MOV AX, [BLOCK+10]

3-16 (1)60H输出到端口580H (2)8060H输出到580H 端口

(3)将4FH从端口40H读入到AL (4)从端口40H读一个16位的数到AX (5)将60H输出到端口45H (6)将8060H输出到端口45H

3-17

NUM1 DW 4148H,2816H

NUM2 DW 2258H,8452H

(1) MOV AX,NUM2

ADD NUM1,AX

MOV AX,NUM2+2

ADD NUM1+2,AX

(2) RES DB 2DUP(?)

MOV AL,BYTE PTR NUM1

ADD AL,BYTE PTR NUM1+1

ADD AL,BYTE PTR NUM1+2

ADD AL,BYTE PTR NUM1+3

MOV RES,AL

(3) 假设存放的数据为无符号数

MOV SI,OFFSET NUM1

XOR AX,AX

MOV CX,8

LP:ADD AL,[SI]

ADC AH,0

INC SI

LOOP LP

MOV RES,AL

MOV RES+1,AH

假设存放的数据为带符号数

MOV SI,OFFSET NUM1

XOR BX,BX

MOV CX,8

LP:MOV AL,[SI]

CBW

ADD BX,AX

INC SI

LOOP LP

MOV RES,AL

MOV RES+1,AH

(4) MOV AX,NUM1

ADD NUM2,AX

MOV AX,NUM1+2

ADC NUM2+2,AX

3-18

(1) XOR AX, AX ;AX清零

LEA SI, NUM1

MOV CX, 8

LOP: ADD AL, [SI]

DAA

ADC AH, 0 ;AF清零

INC SI

LOOP LOP

MOV RES, AL

MOV RES+1, AH

(2)MOV AL, NUM1

SUB AL, NUM2

DAS

MOV RES, AL

差=90H;CF=1

3-21

(1)BX=9AH (2)BX=61H (3)BX=8071H

(4)BX=10F7H (5)BX=0FF1CH

3-22(1)DX=0006H BX=0004H

(2)SP=1FFFEH [SP]=0FFFEH

(3)CX=0004H BX=0004H

(4)AX=8094H CF=0

(5)MOV AL, [SI]

(6)AL=0CCH CF=0

AL=32H

(7)SI=0009H

(8)DI=0009H

(9)[DI]=94H

(10) AX=17C6H DX=8094H

(11) AH=84H, BL=04H

(12)IP=17C6H

3-23

(1)将自FIRST开始的存储区中的连续10个字节传送到从SECOND开始的存储区中。

(2)将自0404H开始的存储区中连续256个字节全部赋0值。

3-26 MOV BX,0A80H

MOV AL,5

XLAT

3-27

(1)IP=1256H (2)IP=3280H (3)IP=2450H

3-28

CS=2000H; IP=009AH; SP=0F178H; [SP]=8FH

[SP+1]=3DH; [SP+2]=50H; [SP+3]=40H;

3-29

MOV BL,AL

CMP AL,01H

JZ LAB1

CMP AL,02H

JZ LAB2

CMP AL,04H

JZ LAB3

AND BL,07H

JNZ OK

……

OK: ……

LAB1: ……

LAB2: ……

LAB3: ……

3-31

MOV AX,0032H

CMP AX,X

JL N_HIGH

MOV BX,X

SUB BX,Y

JO OVERFLOW

JNS NEXT

NEG BX

NEXT: MOV RESULT,BX

N_HIGH: ……

OVERFLOW: ……

第四章汇编语言程序设计(P195)4-2 内存分配和预置数据

V AR1 DB 12,-12H,3 DUP(0,0FFH)

V AR2 DB 100 DUP(0,2 DUP(1,2),0,3)

V AR3 DB ‘WELCOME TO’

V AR4 DW V AR3+6 ;取其偏移量给V AR4

V AR5 DD V AR3 ;取其偏移量和段基址给V AR5

4-3

(1)DATA1 DB 86H,27H,23H,00H,24H,1AH

(2)DATA2 DW 0B430H,1062H

(3)DATA3 DB 4DUP(20H),20,0,6DUP(1,2)

4-4 (1)2

(2)2

(3)1

(4)10

4-5

(1)V AR1的偏移量是0030H;V AR2的偏移量是003AH

(2)CNT=0010H

(3)V AR2+2单元的内容是02H

4-10

DATA SEGMENT

X DB 4 DUP(?)

Y DB 4 DUP(?)

Z DB 4 DUP(?),0 ;定义X,Y,Z为字节变量

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,WORD PTR X[0]

ADD AX,WORD PTR Y[0] ;X,Y低16位相加

MOV WORD PTR Z[0],AX ;结果存入Z的低16位

MOV AX,WORD PTR X[2]

ADC AX,WORD PTR Y[2] ;X,Y高16位相加

MOV WORD PTR Z[2],AX ;结果存入Z的高16位

JNC O K

MOV AL,1

MOV Z+4,AL ;保存进位

OK: MOV AH,4CH

INT 21H

CODE ENDS

END START

4-11

DATA SEGMENT

X DB 4 DUP(?)

Y DB 4 DUP(?)

Z DB 4 DUP(?) ;定义X,Y,Z为字节变量DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: M OV AX,DATA

MOV DS,AX

MOV DL,0

MOV AX,WORD PTR X

SUB AX,WORD PTR Y ;X,Y低16位相减

MOV WORD PTR Z,AX ;结果存入Z的低16位MOV AX,WORD PTR X[2]

SBB AX,WORD PTR Y[2] ;X,Y高16位相加

MOV WORD PTR Z[2],AX ;结果存入Z的高16位JNO OK

MOV DL,-1 ;溢出

OK: MOV AH,4CH

INT 21H

CODE ENDS

END START

4-12

(1)

DATA SEGMENT

DB 100 DUP(?)

MESG DB 'ERROR INPUT!$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV AH,01H

INT 21H ;从键盘输入一个字符,该字符ASCII码送入AL

CMP AL,41H

JB ERROR

CMP AL,4AH

JA ERROR

CMP AL,41H

JE P0 ;判断输入字符是为'A',则跳转到P0

...

CMP AL,4AH

JE P9 ;判断输入字符是为'J',则跳转到P9

P0: ...

RET

...

P9: ...

RET

ERROR: M OV DX,OFFSET MESG

MOV AH,09H

INT 21H ;输入字符非'A'~'J'则输出错误信息

RET

START ENDP

CODE ENDS

END START

(2)

DATA SEGMENT

BASE DW P0,P1,P2,P3,P4,P5,P6,P7,P8,P9

MESG DB 'ERROR INPUT!$'

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC FAR

PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV BX,0 ;BX为跳转表BASE内寻址编号,清零MOV AH,01H

INT 21H ;从键盘输入字符命令

CMP AL,41H

JB ERROR

CMP AL,4AH

JA ERROR ;输入字符非'A'~'J'则跳转到ERROR

MOV BL,AL

SUB B L,41H ;得编号

SHL BX,1 ;表内偏移量=编号*2

JMP BASE[BX];查跳转表跳转到相应的子程序ERROR: M OV DX,OFFSET MESG

MOV AH,09H

INT 21H ;输出错误信息

RET

P0: ...

RET

...

P9: ...

RET

START ENDP

CODE ENDS

END START

4-13

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: M OV AX,DATA

MOV DS,AX

MOV GOOD,0

MOV PASS,0

MOV BAD,0

XOR BX,BX ;bx存放全年级统计总成绩XOR SI,SI

MOV CX,100

LP: MOV AH,BUF[SI]

CMP AH,85H

JA GS

CMP AH,60H

JAE PS

MOV AL,BAD

ADD AL,1

DAA

MOV BAD,AL

JMP AGAIN

GS: MOV AL,GOOD

ADD AL,1

DAA

MOV GOOD,AL

JMP AGAIN

PS: MOV AL,PASS

ADD AL,1

DAA

MOV PASS,AL

AGAIN: MOV AL,BL

ADD AL,AH

DAA

MOV BL,AL

MOV AL,BH

ADC AL,0

DAA

MOV BH,AL

INC SI

LOOP LP

MOV A VRG,BH

MOV AH,4CH

INT 21H

CODE ENDS

END START

4-15

DATA SEGMENT

FIRST DB '...$' ;定义字符串

COUNT EQU 100 ;定义字符串长度

RESULT DW ?;定义存放结果单元

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: M OV AX,DATA

MOV DS,AX

MOV BX,OFFSET FIRST ;建立数据指针

MOV CX,COUNT ;设置循环次数

MOV DX,0 ;清零计数器

LP: CMP BYTE PTR [BX],'A'

JNZ NEXT ;非'A'则转到NEXT

INC DX ;是'A'则计数器DX加1 NEXT: INC BX ;调整数据指针LOOP LP ;循环100次

MOV RESULT,DX ;结果存入RESULT

MOV AH,4CH

INT 21H

CODE ENDS

END START

4-17

DATA SEGMENT

DATA_W DW X1,X2,…

COUNT EQU ($-DATA_W)/2

COUT1 DW 0

COUT2 DW 0

COUT3 DW 0

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: M OV AX,DATA

MOV DS,AX

MOV BX,OFFSET DATA_W ;建立数据指针

MOV CX,COUNT ;设置循环次数

LP: CMP WORD PTR [BX],0

JGE NEXT

INC COUT2

JMP AGAIN

NEXT: JG NEXT2

INC COUT3

JMP AGAIN

NEXT2: INC COUT1

AGAIN:INC BX ;调整数据指针

INC BX

LOOP LP ;循环100次

MOV AH,4CH

INT 21H

CODE ENDS

END START

4-18

DATA ESGMENT

ARRAY DB D1,D2,...,DN ;定义字节数组

COUNT EQU $-ARRAY ;字节数组长度赋予符号名COUNT MAX DB ?

MIN DB ?

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: M OV AX,DATA

MOV DS,AX

MOV BX,OFFSET ARRAY ;建立数据指针

MOV CX,COUNT-1 ;设置循环次数

MOV AL,[BX]

MOV MAX,AL ;MAX赋予初值为ARRAY的第一个数据MOV MIN,AL ;MIN赋予初值为ARRAY的第一个数据LP: INC BX ;调整数据指针

MOV AL,[BX] ;取数据

CMP AL,MIN ;与MIN进行比较

JNB BIG ;比MIN大则跳转BIG判断是否最大值

MOV MIN,AL ;小于或等于MIN则给MIN重新赋值JMP NEXT ;比较下一个数据

BIG: CMP AL,MAX ;与MAX进行比较

JNA NEXT ;比MAX小则比较下一个数据

MOV MAX,AL ;大于或等于MAX则给MAX重新赋值NEXT: LOOP LP

MOV AH,4CH

INT 21H

CODE ENDS

END START

4-19

DATA SEGMENT

BLOCK DB X1,X2,…

COUNT EQU 256

MAX DB ?

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: M OV AX,DATA

MOV DS,AX

MOV MAX,0

MOV BX,OFFSET BLOCK ;建立数据指针

MOV CX,COUNT ;设置循环次数

LP: MOV AL, BYTE PTR [BX]

CMP AL,0

JGE NEXT

NEG AL

NEXT: CMP MAX,AL

JAE AGAIN

MOV MAX,AL

AGAIN:INC BX ;调整数据指针

LOOP LP

MOV AH,4CH

INT 21H

CODE ENDS

END START

4-22

DATA SEGMENT

STRING DB 'S1S2 (80)

COUNT EQU 80

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,0 ;清零计数器DX

MOV BX,OFFSET STRING;建立指针

MOV CX,COUNT ;置循环次数

LP: MOV AL,[BX] ;取字符

CMP AL,20H ;判断字符是否为空格

JZ FOUND ;是则跳转到FOUND

INC BX ;否则调整指针查下一个字符

INC DX ;同时调整计数器

LOOP LP ;循环80次

MOV DL,0FFH ;循环80次均找不到则给DL赋值为-1 FOUND: MOV CL,DL ;结果DL存入CL

MOV AH,4CH

INT 21H

CODE ENDS

END START

4-26

;模块1,文件名:MAIN.ASM

EXTRN DISPLAY:FAR

PUBLIC MESG

DATA1 SEGMENT

MESG DB 'ASSEMBLER$'

DATA1 ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

CODE1 SEGMENT

ASSUME CS:CODE1,DS:DATA1

MAIN: MOV AX,DATA

MOV DS,AX

CALL FAR PTR DISPLAY

MOV AH,4CH

INT 21H

CODE1 ENDS

END MAIN

;模块2,文件名:DISP.ASM

EXTRN MESG:FAR

PUBLIC DISPLAY

CODE2 SEGMENT

ASSUME CS:CODE2

DISPLAY PROC FAR

MOV DX,OFFSET MESG

MOV AH,09H

INT 21H

RET

DISPLAY ENDP

CODE2 ENDS

END

4-30

(1);使用地址表方式

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

DATA SEGMENT

NUM1 DB 26H

NUM2 DW 168AH

V AR DB 8,16

ASCBUF DB 32 DUP(0)

TABLE DW 3 DUP(0)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV TABLE,OFFSET NUM1

MOV TABLE+2,OFFSET NUM2

MOV TABLE+4,OFFSET ASCBUF

LEA SI,TABLE

CALL BINTOASC

CALL DISP

MOV AH,4CH

INT 21H

BINTOASC PROC NEAR

MOV DI,[SI] ;取得NUM1地址

MOV AL,[DI] ;取得NUM1

MOV DI,[SI+2] ;取得NUM2地址

MOV BX,[DI] ;取得NUM2

MOV DI,[SI+4] ;取得ASCBUF首地址

MOV CX,8

CNUM1: SHL AL,1 ;NUM1左移1位

JC NUM11 ;若这位为1,则转NUM11,并将31H写入ASCBUF

MOV AH,30H ;若这位为0,则将30H写入ASCBUF

MOV [DI],AH

JMP NEXT1

NUM11: MOV AH,31H

MOV [DI],AH

NEXT1: INC DI

LOOP CNUM1

MOV CX,16

CNUM2: SHL BX,1 ;NUM2左移1位

JC NUM21 ;若这位为1,则转NUM21,并将31H写入ASCBUF

MOV AH,30H ;若这位为0,则将30H写入ASCBUF

MOV [DI],AH

JMP NEXT2

NUM21: MOV AH,31H

MOV [DI],AH

NEXT2: INC DI

LOOP CNUM2

MOV AH,24H

MOV [DI],AH ;为打印字符串,在ASCBUF末尾写入'$'

RET

BINTOASC ENDP

DISP PROC NEAR

LEA DX,ASCBUF

MOV AH,09H

INT 21H

RET

DISP ENDP

CODE ENDS

END START

(2);使用堆栈方式

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

DATA SEGMENT

NUM1 DB 26H

NUM2 DW 168AH

V AR DB 8,16

ASCBUF DB 32 DUP(0)

TABLE DW 3 DUP(0)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA BX,NUM1

PUSH BX

LEA BX,NUM2

PUSH BX

LEA BX,ASCBUF

PUSH BX

CALL BINTOASC

CALL DISP

MOV AH,4CH

INT 21H

BINTOASC PROC NEAR

PUSH AX

PUSH BX

PUSH CX

PUSH BP

PUSH DI

MOV BP,SP

MOV DI,[BP+16] ;取得NUM1地址

MOV AL,[DI] ;取得NUM1

MOV DI,[BP+14] ;取得NUM2地址

MOV BX,[DI] ;取得NUM2

MOV DI,[BP+12] ;取得ASCBUF首地址

MOV CX,8

CNUM1: SHL AL,1 ;NUM1左移1位

JC NUM11 ;若这位为1,则转NUM11,并将31H写入ASCBUF

MOV AH,30H ;若这位为0,则将30H写入ASCBUF

MOV [DI],AH

JMP NEXT1

NUM11: MOV AH,31H

MOV [DI],AH

NEXT1: INC DI

LOOP CNUM1

MOV CX,16

CNUM2: SHL BX,1 ;NUM2左移1位

JC NUM21 ;若这位为1,则转NUM21,并将31H写入ASCBUF

MOV AH,30H ;若这位为0,则将30H写入ASCBUF

MOV [DI],AH

JMP NEXT2

NUM21: MOV AH,31H

MOV [DI],AH

NEXT2: INC DI

LOOP CNUM2

MOV AH,24H

MOV [DI],AH

POP DI

POP BP

POP CX

POP BX

POP AX

RET 6

BINTOASC ENDP

DISP PROC NEAR

LEA DX,ASCBUF

MOV AH,09H

INT 21H

RET

DISP ENDP

CODE ENDS

END START

4-32

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

DATA SEGMENT

STR1 DB 8 DUP(0) ;存储输入的6位十进制数ASCII码,STR1[2]~STR1[7],分别保存十万~个位,下同

STR2 DB 8 DUP(0)

SUM DB 8 DUP(0) ;存储结果的ASCII码

BCD1 DB 3 DUP(0) ;存储输入的6位十进制数的压缩BCD码,BCD1[2]~BCD1[0],分别保存十万~个位,下同

BCD2 DB 3 DUP(0)

BCDSUM DB 4 DUP(0) ;存储结果的BCD码

MESG1 DB 'PLEASE INPUT THE FIRST NUMBER : $'

MESG2 DB 'PLEASE INPUT THE SECOND NUMBER : $'

MESG3 DB 'THE SUM IS : $'

DATA ENDS

CODE SEGMENT

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

丽水学院《微机原理》考试试卷 班级:___________ 姓名:___________学号:____________ 题号一二三四五六总分得分 得分 一、判断题(每题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____。

微机原理实验指导书

微型计算机原理与应用实验指导书 上海大学通信学院

2010 年4 月 PC微机原理实验一 一、目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的 功能。 要求:在PC机上完成下列程序的调试运行,并写出运行结果。二、1.DEBUG的基本操作:(详细内容请参阅教材“程序的调试,P173”和“附录F 调试程序DEUBG的使用,P499”) (1)从WINDOWS进入DOS之后,输入命令启动DEBUG: C:>DEBUG 回车 (2)输入R命令,查看和记录CPU各个寄存器的内容: -R回车 看到什么 (3)输入A命令,汇编下面的字符“WINDOWS”显示程序: -A100 ;从偏移地址是0100H处开始写指令 MOV AH,2 MOV DL, 57 ;57H 是“W ”的ASCII码 INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功能 ;这3句合起来的功能是:显示DL中的字符 MOV DL, 49 INT 2 1 MOV DL, 4E INT 21 MOV DL, 44 INT 2 1 MOV DL, 4F INT 2 1 MOV DL, 57 INT 2 1 MOV DL, 53 INT 2 1 INT 3 ;功能是产生一个断点,不要省略 (4)输入U 命令反汇编上面的程序: -U 100 问:这里100代表什么 (5)输入G命令连续运行上面的程序,记录运行结果:

-G=100 ,57,53依次分别改为574F4E57 (6)输入E命令把上面程序中的数据,49,,44,,45:,,45,4C43,4F4D,-E 103 回车(以下同) -E 107 10B-E -E 10F 113-E 117-E 11B-E (7)输入D命令查看程序机器码的存放情况: -D 100 11E ;看从100开始到11E的机器码 (8)输入G命令再连续运行程序,并记录运行结果: -G=100 (9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各 命令的运行结果: -T=100 回车 -G=100 106 回车 -G=100 10A 回车 -G=100 10E 回车 -G=100 11E 回车 注意: 下面第2—第8段程序是7个实用的小程序,若不小心打错指令,可以这样修改: 例如:CS:0100 B300 MOV BL,0 0102 53 PUSH BX 0103 B220 LP1: MOV DL,20 要修改“PUSH BX”,因为这条指令的IP是0102,所以按以下操作: -A 0102 回车,然后把正确的指令打入,“-A ”是汇编指令。 如果要查看0100以后的指令及相应的机器代码,可以 -U 0100 回车,能够看到CS:0100开始的指令及相应的机器代码。“-U ”是反汇编 若发现有误用,用“-A XXXX 回车”,重打这条指令即可 2.编制一个能在CRT上连续显示A,B,C,D······Z大写英文字符的源程序,并在源程序下汇编调试机运行。

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

的数据线为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.第一台计算机在哪一年问世?() A.1945 B.1946 C.1947 D.1948 2.8088/8086每个逻辑段最大为()KB. A.16 B.32 C.64 D.128 3.8088经过加电复位后,执行的第一条指令的地址是() A.03FFFH B.0FFFFH C. 0FFFF0H D. 0000H 4.哪个不是FLAGS( ) A.CF B. OF C.AF D.WF 5.下列指令中错误的是()。 A.MOV AH,AL B.MOV [BX],[SI] C.MOV AX,[BP][SI] D.MOV [BX],AX 6.01001100B和10010110B进行逻辑异或,其结果为()。A.11011010B B.11111011B C.00100101B D.11100010B 7.若执行加法操作前,AL=87H,BL=92H,两个数据执行加法操作后,CF 应为()。 A. 0 B. 1 C. 2 D. 10 8.若AX=9CH, BX=7BH,执行ADD AX,BX 运算,会产生____。 A. 无溢出,无进位 B. 无溢出,有进位 C. 有溢出,有进位 D. 有溢出,无进位 9.设22000H,22001H单元分别存放的数据为12H,34H,若要读取

22000H字单元中的数据,此时读出的数据是____。 A. 12H B. 34H C. 1234H D. 3412H 10. 二.填空题 1.主机由____、____、____、______四部分组成。 2.有符号八位二进制数补码表示的范围______。 3.二进制数01000111转换为BCD码为______。 4.MN/MX =____时,8088处在最小模式,构成_____系统。 5. 取指令时,使用的段寄存器是______。 6.系统的总线一般分为______、_______、________。 7.已知1F00;38A0,物理地址为____________。 8.8088/8086的工作特点_________、__________、_____________。8088/8086CPU中两个独立结构单元是_______和_____,功能分别为________、____________。 9.DW伪指令后面的每个操作数都占有____个字节。 10.8088/8086CPU指令系统按照功能可分为六大类:_____________、__________、___________、___________、___________、___________。三.分析下列程序段,写出其结果。 1、MOV AL,01H ROR AL,1 OR AL,AL NEG AL

微机原理综合实验-交通灯

华北科技学院计算机系综合性实验 实验报告 课程名称微机原理与接口技术 实验学期2011至2012学年第二学期学生所在系部电子信息工程学院 年级09级专业班级自动化B091班学生姓名戴子昱学号15 任课教师王德志 实验成绩 计算机系制

实验报告须知 1、学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。 2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、 内容、结果及分析等。 3、教师应该填写的内容包括:实验成绩、教师评价等。 4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合 性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。 5、未尽事宜,请参考该课程的实验大纲和教学大纲。

《微机原理与接口技术》课程综合性实验报告 开课实验室:接口实验室2012年06月12日 实验题目 交通信号灯的控制 一、实验目的 (1)通过8255并行接口来控制LED发光二极管的亮灭,并精确延时。 (2)实现黄灯闪烁。 (3)通过8255并口控制,人工进行交通灯的转换。 二、设备与环境 PC机(windows XP) 实验箱(TPC-386EM) 8255A、8253 三、实验内容 1需要完成的基本控制要求概览: (1)南北路口的绿灯、东西路口的红灯同时亮5秒。 (2)南北路口的黄灯闪烁若干次,维持3秒,同时东西路口的红灯。 (3)南北路口的红灯、东西路口的绿灯同时亮5秒。 (4)南北路口的红灯、同时东西路口的黄灯亮烁若干次,维持3秒。 (5)转(1)重复。 (6)紧急情况可以手动控制红绿灯的变换。一个开关控制南北绿,东西红,另一个按钮南北红,东西绿。 (7)黄灯闪烁时扬声器发声,提醒。 2交通红绿的设计基本端口规划 8255A口作为灯控制输出,PA0-PA5分别对应东西红黄绿,南北红黄绿,P6与P7口不用;8253B口作为输入,PB0-PB3分别对应启动,停止,东西方向交通管制,南北方向交通管制(高电平有效)。 8253C口最低位作为输入,接入8253通道1的产生的。1s方波上下降沿来定时;8253通道0输入时钟为1Mhz,通道0用来分频,通道1用来产生1s方波,通道2不用。接线图1所示

微机原理实验指导书

微机原理及应用实验指导书 南京理工大学机械工程学院 2011年10月10日

实验1 基本操作实验 1. 实验目的 (1) 掌握TD-PITC 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。 (2) 掌握使用运算类指令编程及调试方法; (3) 掌握运算类指令对各状态标志位的影响及其测试方法; (4) 学习使用软件监视变量的方法。 2. 实验设备 PC机一台,TD-PITC 实验装置一套。 3. 实验内容及步骤 通过对样例程序的操作,学会在TD-PITC境下,如何输入汇编语言程序,如何进行汇编语言源程序的汇编、连接、下载和运行;在调试程序的学习过程中,应学会: ●如何设置断点; ●如何单步运行程序; ●如何连续运行程序; ●怎样查看寄存器的内容; ●怎样修改寄存器的内容; ●怎样查看存储器的内容; ●怎样修改存储器的内容。 3.1 实验内容1――――BCD码转换为二进制数 实验内容: 将四个二位十进制数的BCD 码存放于3500H 起始的内存单元中,将转换的二进制数存入3510H 起始的内存单元中,自行绘制流程图并编写程序。 参考实验程序清单如下: SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: XOR AX, AX MOV CX, 0004H MOV SI, 3500H MOV DI, 3510H A1: MOV AL, [SI] ADD AL, AL MOV BL, AL

ADD AL, AL ADD AL, AL ADD AL, BL INC SI ADD AL, [SI] MOV [DI], AL INC SI INC DI LOOP A1 A2: JMP A2 CODE ENDS END START 实验步骤: 1)运行Wmd86 软件,进入Wmd86 集成开发环境。 2)根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1-1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。 图1-1 语言环境选择界面 3)语言选择后,点击新建或按Ctrl+N 组合键来新建一个文档,如图1-2所示。默认文件名为Wmd861。 图1-2 新建文件界面 4)编写实验程序,如图1-3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

微机原理期末考试复习课案

1、统计出某数组中相邻两数之间符号变化的次数DATA SEGMENT ARRAY DB 20 DUP (?) NUM DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA STARTUP:LEA SI , ARRAY; MOV AL ,[SI] MOV BL,0 MOV CX,19 AGAIN: INC SI XOR AL ,[SI] J NS NEXT INC BL NEXT: MOV AL ,[SI] LOOP AGAIN MOV NUM,BL MOV AH ,4CH INT 21H CODE ENDS END STARTUP 2、乘法指令实现32位二进制数与16位二进制数相乘MODEL SMALL .8086 .DATA N1 DW 1234H N2 DW 5678H N3 DW 4444H M1 DW 0 M2 DW 0 M3 DW 0 CODE . STARTUP MOV AX ,N2 MUL N3 MOV M3,AX MOV M2,DX MOV AX,N3 MUL N1 ADD M2,AX ADC M1,DX .EXIT

END 3、设有3个自变量的变量名及其内容如下: V AR1 3C46H , V AR2 F678H , V AR3 0059H 设计一个数据段定义这三个变量及其地址表变量DDRTABL DATA SEGMENT V AR1 DW 3C46H V AR2 DW F678H V AR3 DW 0059H ADDRTABL DD V AR1 DD V AR2 DD V AR3 DATA ENDS 4、设有一个符号数组,共M个,求其中最大的数,如需要求绝对值最大应如何修改,如为无符号数,程序如何修改。 DATA SEGMENT M EQU 10 DAT DW M DUP(?) MAX DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA STARUP : MOV AX ,DAT MOV MAX ,AX CLD LEA SI ,DAT MOV CX ,M L1: LODSW CMP AX ,MAX JNG LAB MOV MAX ,AX LAB : LOOP L1 MOV AH ,4CH INT 21H CODE ENDS END STARTUP 绝对值修改:需要在LODSW插入 AND AX ,AX JNS LAB1 NEG AX LAB1: CMP AX ,MAX 程序初始化时MAX应送入0

同济大学微机原理期末试题范围上课讲义

第一章概述 1、微型计算机的性能指标:速度,存储器容量 第二章计算机中的数制和编码 1、在计算机内部所有信息只能用“0”和“1”这两个状态表示,因此计算机内 部的“数”也都是用多个0和1组成的位串来表示的。按不同的格式构成的位组合状态就形成了不同的数制。 2、字长:把8位二进制数称为字节,把16位二进制数称为字,把32位二进制 数称为双字。 3、机器数:数值连同符号数码“0”或“1”一起作为一个数就是机器数,而它 的数值连同符号“+”或“-”称为机器数的真值。 4、原码:设机器的字长为n,则原码的定义: [X]= 反码:[X]= 反码和原码的区别:原码符号位不变,其他的位加1 补码:[X]= 正数的补码和原码相同,负数的补码为其反码在最低位加一 -128的补码按定义做:[-128]补=10000000B 对于十进制负数:若字长为n=8,其补码为256+X,字长为n=16,补码为65536+X 对于十六进制负数:若字长n=8,其补码为100H+X,若字长为n=16,补码为10000H+X 5、补码的运算 双高位法:OV=Cs+Cp,用来判是否溢出,Cs为加减运算中最高位(符号位)的进位值,Cp为加减运算中最高数值位的进位值。如果OV=1,则溢出。 直接观察法:当正加正为负,或反之,则溢出。 6、ASCII码 0~9为30~39,A到Z为41~5A,a~z为61~7A,Blank(space)为20,小数点为2E,换行LF为0A,回车CR为0D 7位ASCII码的最高位为逻辑“0”,常用奇偶校验位,用来检测存储和传送过程中是否发生错误。偶校验中,每个代码的二进制的形式中应有偶数个1. 7、汉字输入编码分为:数字编码,拼音码,字形编码。汉字编码分为:汉字的 输入编码,汉字内码,汉字自模码 第三章微型计算机的系统结构 1、硬件的组成及其功能:硬件由三个基本模块——微处理器模块,存贮器模块, I/O模块及连接这三个模块的总线构成。 微处理器CPU是微型计算机运算和控制的中心,包括运算器,控制器和存储器。他可以进行运算,逻辑判断和分析,并协调计算各个部分工作。 存储器主要是指微机的内存或主存储器,主要用来存放当前正在使用或经常

微机原理实验

微型计算机原理实验报告 学号 姓名海米提。热合木江班级测控0902班

实验一显示程序实验 一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能 调用(INT 21H)。 流程图

2.试验程序 DA TA SEGMENT MES DB 'Show a as hex:', 0AH,0DH,'$' SD DB 'a' DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET MES MOV AH, 09H INT 21H MOV DI, OFFSET SD MOV AL, DS:[DI] AND AL, 0F0H SHR AL,4 CMP AL, 0AH JB C2 ADD AL, 07H C2: ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AL, DS:[DI] AND AL, 0FH CMP AL, 0AH JB C3 ADD AL, 07H C3: ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AX, 4C00H INT 21H CODE ENDS END START

实验二数据传送实验 三、实验内容 将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上 1.试验程序 DA TA SEGMENT MSR DB "HELLO,WORLD!$" LEN EQU $- MSR DDATA ENDS EXDA SEGMENT MSD DB LEN DUP() EXDA ENDS MYSTACK SEGMENT STACK DW 20 DUP() MYSTACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DDA TA, ES:EXDA START: MOV AX, DDATA MOV DS, AX MOV AX, EXDA MOV ES,AX MOV SI, OFFSET MSR MOV DI, OFFSET MSD MOV CX, LEN NEXT: MOV AL, [SI] MOV ES:[DI], AL INC SI INC DI DEC CX JNZ NEXT PUSH ES POP DS MOV DX, OFFSET MSD MOV AH, 9 INT 21H MOV AX, 4C00H

微机原理试题及答案(考试必备)

一、选择题(20分,在每小题的4个备选答案中选出一个正确的答案编号填写在该题空白处,每题2分) 1.指令MOV DX,[BX]的寻址方式是 D 。 (A)立即寻址(B)直接寻址(C)寄存器寻址(D)寄存器间接寻址2.若AL的内容为3FH,执行SHL AL,1指令后,AL的内容为 A 。 (A)7EH (B)1FH (C)9FH (D)7FH 解析:shl al ,1 即目的操作数各位左移一次,移动一次,相当于将目的操作数乘以2。3fh=63 63*2=126 126=7eh 故选A 3.属于在工作中需定时刷新的存储器的芯片是 B 。 (A)SRAM (B)DRAM (C)EEPROM (D)EPROM 4.某EPROM芯片上有19条地址线A 0~A 18 ,它的容量为 C 。 (A)128K (B)256K (C)512K (D)1024K 5.8086/8088CPU的SP寄存器是多少位的寄存器 B 。 (A)8位(B)16位(C)24位(D)32位 6.在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址, 该寄存器是 D 。 (A)SP (B)BX (C)SI (D)DI 解析:stos数据串存储指令功能:将累加器al或ah中的一个字或字节,传送到附加段中以di为目标指针的目的串中,同时修改di,以指向串中的下一个单元。 7.8255工作在方式0时,下面哪种说法不正确 C 。 (A)A口输入无锁存能力(B)A、B口输出有锁存能力 (C)C口输入有锁存能力(D)A、B、C三个口输出均有锁存能力 解析:对于方式0,规定输出信号可以被锁存,输入不能锁存 8.采用DMA方式来实现输入输出是因为它 A 。 (A)速度最快(B)CPU可不参与操作(C)实现起来比较容易(D)能对突发事件做出实时响应 9.工作在最小模式下,8086/8088CPU芯片中,将地址信号锁存的信号是 C 。 (A)DT/R (B)DEN (C)ALE (D)AEN 10.在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存 器 C 。 (A)AX (B)BX (C)CX (D)DX 解析:loop:循环指令。指令执行前必须事先见重复次数放在cx寄存器中,每执行一次loop指令,cx自动减1。 二、填空题(每小题2分,共10分) 1.两个无符号数相等,该两数相减后ZF标志= 1 。解析:zf: 全零标志位。本次运算结果为0时,zf=1,否则zf=0。 2.执行LODSB后,SI的内容较该指令执行前增加1,说明DF =。 3.DMA控制器8237共有个相互独立的DMA通道。 4.8086/8088断点中断的向量码是 03H 。 5.利用8253产生对称的方波,应用其工作方式 3 。解析:8253 的工作方式3为方波发生器。

微机原理实验简易计算器

【实验题目】 简易计算器设计 【实验目的】 综合测试学生微机接口技术及应用能力,包括系统构思设计、电路设计搭建、软件调试等; 结合应用实际,培养学生运用微机技术服务应用、服务实际的能力。 【基本要求】 1)利用实验箱上的4x4键盘及6位数码管,实现两个16位宽的非负整数(0~65535)进行+、-、×运算,计算结果限制在范围-65535~65535,超过范围在数码管最低位显示E; 2)16个按键的分配可以自行指定; 【扩展要求】 1)按基本要求保持输入的范围不变(16位宽),扩展计算结果的范围到用足6位数码管,当计算结果超过-65535~999999时,显示E; 2)增加÷的功能,有小数显示; 【实验程序】 ;该程序实现了基本要求及扩展要求的2) DSEG SEGMENT BUFF DB 6 DUP(?) LED_7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7C H,39H,5EH,79H,71H,00H,40H POSITION DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH UNIT10 DW 10000,1000,100,10,1 NEWNUM DB 0 COUNT DB 0 FLAG DB 0 ;是否有键按下的标志 NEGTI DB 0 ;是否为负数的标志 NUM DW 0 NUM1 DW 0 NUM2 DW 0 TAG DB 0 ;运算种类标志 POINT DB 0 ;除法结果添加小数点标志 RESULT DW 0 DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV DX,300CH ;8255初始化 MOV AL,81H OUT DX,AL LEA SI,BUFF MOV CX,6 NEXT: MOV BYTE PTR[SI],16 INC SI LOOP NEXT CALL SHOW ;将显示缓冲区中内容在LED上一次显示出来 MOV COUNT,0 ;记按下了几位数 NEXT2: CALL SHOW CALL SCAN ;判断是否有按键按下 CMP FLAG,1 JZ OK JMP NEXT2 OK: MOV FLAG,0 MOV POINT,0 MOV DX,3000H ;判断是哪一个键被按下 MOV AL,0FFH OUT DX,AL MOV CH,-1 ;CH用于保存当前被扫描的列号MOV CL,07FH XL: ROL CL,1 INC CH MOV DX,3000H MOV AL,CL .

微机原理实验指导书

微型计算机原理与应用 实验指导书 上海大学通信学院 2010 年 4 月

PC微机原理实验一 一、目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的 功能。 二、要求:在PC机上完成下列程序的调试运行,并写出运行结果。1.DEBUG的基本操作:(详细容请参阅教材“4.5程序的调试,P173”和“附 录F调试程序DEUBG的使用,P499”) (1)从WINDOWS进入DOS之后,输入命令启动DEBUG: C:>DEBUG 回车 (2)输入R命令,查看和记录CPU各个寄存器的容: -R回车 看到什么? (3)输入A命令,汇编下面的字符“WINDOWS”显示程序: -A100 ;从偏移地址是0100H处开始写指令 MOV AH,2 MOV DL, 57 ;57H 是“W”的ASCII码 INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功能 ;这3句合起来的功能是:显示DL中的字符 MOV DL, 49 INT 21 MOV DL, 4E INT 21 MOV DL, 44 INT 21 MOV DL, 4F INT 21 MOV DL, 57 INT 21 MOV DL, 53 INT 21 INT 3 ;功能是产生一个断点,不要省略 (4)输入U命令反汇编上面的程序: -U 100 问:这里100代表什么? (5)输入G命令连续运行上面的程序,记录运行结果: -G=100 (6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45: -E 103 回车(以下同) -E 107 -E 10B

微机原理及接口技术课程期末考试试题

2010/2011 学年第 2 学期末考试试题(A卷) 课程名称微机原理及接口技术 使用班级: 08060241、08060242、08060441、08060442 一、选择题(共20分,每小题1分) 1.在下列不同进制的数据中,最小的数是___________。 A) 101001B B) 101001BCD C) 52D D) 23H 2.标准的ASCII码由______位二进制代码组成。 A) 4 B) 7 C) 8 D) 9 3.堆栈的工作方式是___________。 A)先进先出 B)后进先出 C)随机读写 D)只能读出不能写入 4. 下面的说法中,___________是正确的。 A)指令周期等于总线周期 B)指令周期大于等于总线周期 C)指令周期是总线周期的两倍 D)指令周期与总线周期之间的关系不确定5. 在8086系统中,在以下地址中可作为段起始地址的为:( ) A) 20100H B) 20102H C) 20104H D) 20108H 6. 8086执行一个总线周期最多可传送( )字节。 A) 1个 B) 2个 C) 3个 D) 4个 7. Reset信号有效后,8086CPU的启动地址为__________。 A)0FFFFFH B)0FFFFH C)00000H D)0FFFF0H 8.下列四条指令中,有几条指令需要使用DX寄存器_________? MUL BX DIV BL IN AX,20H OUT 20H,AL A) 1条 B) 2条 C) 3条 D) 4条

9.在子程序的最后一定要有一条__________指令。 A) HLT B) RET C) IRET D) POP 10.下面指令序列执行后完成的运算,正确的算术表达式应是________________。 MOV AL,BYTE PTR X SHL AL,1 DEC AL MOV BYTE PTR Y,AL A) Y=2X+1 B) X=2Y+1 C) Y=2X-1 D) X=2Y-1 11.14.8086执行POP AX指令时,正确的操作是___________________。 A) AX<--[SP+1][SP],SP<--SP+2 B) AX<--[SP+1][SP],SP<--SP-2 C) SP<--SP+2,AX<--[SP+1][SP] D) SP<--SP-2,AX<--[SP+1][SP] 12. 下列有关I/O端口的描述中,不正确的是_______________。 A)I/O端口从逻辑上讲是被CPU访问的I/O接口电路中的寄存器 B)8086系统对I/O端口的访问只能通过专用的指令 C)从连接形式上讲,I/O端口总是直接与数据总线连接 D)I/O端口可以看作是CPU与外设交换数据的中转站 13. 在中断方式下,外设数据输入到内存的路径是 ( ) A)外设→数据总线→内存 B)外设→数据总线→CPU→内存 C)外设→CPU→DMAC→内存 D)外设→I∕O接口→CPU→内存 14. 8086系统中的中断向量表的作用是____________。 A)存放中断服务程序 B)存放系统引导程序 C)存放中断响应标志 D)存放中断服务程序的入口地址 15. 对8086 CPU而言,中断优先级别最高的是_______________。 A)单步中断 B)除法错,溢出中断,软中断 C)INTR D)NMI 16. 8255A芯片具有三个独立数据端口,只有_______端口具有双向传输方式。 A) A口 B) B口 C) C口 D)以上均可 17.在8253 的6种工作方式中,能够自动重复工作的两种方式是( )。 A)方式1,方式 2 B)方式 2,方式3 C)方式2,方式 4 D)方式 3,方式5 18.在通用可编程并行电路8255A中,用于传输数据的8位I/O端口共有_________。 A) 1个 B)2个 C) 3个 D) 4个 19.实验时,在DEBUG下如果要运行0100:4360段开始的一段程序用的命令为________。 A) D=0100:4360 B) A=0100:4360 C) G=0100:4360 D) Q=0100:4360 20. 汇编实验时要显示2100H:45B6H段开始的一段程序的反汇编命令用_________。 A) E 2100:45B6 B) F 2100:45B6 C) U 2100:45B6 D) N 2100:45B6 二、填空题(共20分,每空1分) 1.微型计算机由_______________、_______________、I/O接口和系统总线组成。

微机原理与接口技术综合性实验指导书

微机原理与接口技术实验 电子发声系统设计 【实验目的】 (1). 掌握8254接口电路的连接方法,懂得分频数据对发生频率的影响。 (2). 掌握应用汇编语言控制8254使扬声器发声的程序设计的方法步骤。【实验仪器】 PC微机一台、TD-PIT+实验系统一套。 【实验内容】 连接电子发声电路,根据实验提供的音乐频率表和时间表,编程控制8254,使其输出并驱动扬声器发出相应的乐曲。编程演奏《友谊地久天长》。 (1) 确认实验系统与PC机的连线已接通。 (2) 设计连接实验电路。 (3)运用PIT端口资源工具(CHECK程序),查看I/O片选端口始地址。 (4)编程并编译、链接。 运行程序,听扬声器发音是否正确。 【程序的数据处理】 DATA SEGMENT FREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;频率表 DW 495,495,624,742,833,833,833,742,624 DW 624,495,556,495,556,624,495,416,416,371 DW 495,833,742,624,624,495,556,495,556,833 DW 742,624,624,742,833,990,742,624,624,495 DW 556,495,556,624,495,416,416,371,495,0 TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;时间表 DB 6, 2, 4, 4, 12, 1, 3, 6, 2 DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4 DB 6, 2, 4, 4, 6, 2, 4, 4, 12 DATA ENDS 【上机实验报告】 ⒈上机实验所用的设备(型号或规格),实验环境条件。 ⒉简述实验原理,说明操作过程,及数据要求,给出程序的音频及延时输入数据值。 ⒊你设计的电路图是什么。

微机原理实验指导

微机原理实验一简单I/O口扩展实验 一、实验目的 1. 熟悉74LS273、74LS244的应用接口方法。 2. 掌握用锁存器、三态门扩展简单并行输入输出口的方法。 二、实验内容 用逻辑电平开关作为74LS244(U10)的输入,用发光二极管作为74LS273的输 出,编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。 三、实验器材 微机、EL型微机教学实验箱 四、实验原理图 4LS273 4 4LS02 S O S I C S U 1 R K1-K8是开关的输出插孔,L1-L8是发光二极管的输入插孔,SI0-SI7是74LS244 的输入插孔,SO0-SO7是74LS273的输出插孔,CSU10\是74LS244的地址译码输入插孔,CSU8\是74LS273译码输入插孔,以上插孔实验时均需连线,原理图中其它已注的和未标注的引脚均以连好或实验不需要。 74LS244

五、实验步骤 1.连线:将74LS244的输入SI0-SI7分别与逻辑电平开关电路的 K1-K8相连,从I/O地址片选信号 CS0\~CS7\中任选一个与 U10的片选信号相连(例如CS0\)。将74LS273(U8或U9)的输出(CS0\~CS7\)分别与发光二极管电路的 L1~L8相连,从I/O地址片选信号CS0\~CS7\中任选一个与U8或U9的片选信号相连。(如CS1\)2.编辑程序,单步运行,调试程序 3.调试通过后,全速运行,观察实验结果 4.编写实验报告 六、编程提示 逻辑电平开关拨上时为5V,拨下时为0V,发光二极管输入‘1’为亮,‘0’为灭。从U10读入的数据后从输出口输出。 七、程序框图

微机原理实验参考答案(航大)

《微机原理》实验参考答案 实验1 汇编基本指令及顺序程序设计实验 实验2 分支与DOS中断功能调用程序设计实验 实验3 循环结构程序设计实验 实验4 存储器扩展实验 实验5 8259应用编程实验 实验1汇编基本指令及顺序程序设计实验 一、实验目的 1、掌握汇编语言的开发环境和上机过程; 2、掌握DEBUG命令; 3、掌握顺序程序设计方法; 4、掌握寻址方式; 5、理解和掌握汇编基本指令的功能。 二、实验内容 1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。要求:用3种方法实现。 答:方法一CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H MOV CX,AX MOV AX,BX MOV BX,CX CODE ENDS END START 方法二CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H XCHG AX,BX CODE ENDS END START

方法三CODE SEGMENT ASSUME CS:CODE START: MOV AX,3000H MOV BX,5000H PUSH AX PUSH BX POP AX POP BX CODE ENDS END START 2、分别执行以下指令,比较寄存器寻址,寄存器间接寻址和相对寄存器寻址间的区别。 MOV AX,BX 寄存器寻址,将BX内容送AX MOV AX,[BX] 寄存器间接寻址,将DS:BX内存单元内容送AX MOV AX,10[BX] 寄存器相对寻址,将DS:BX+10内存单元内容送AX 在DEBUG调试模式,用A命令直接编辑相应指令并用T命令单步执行,执行后查询相应寄存器的值并用D命令查内存。 3、已知有如下程序段: MOV AX,1234H MOV CL,4 在以上程序段的基础上,分别执行以下指令: ROL AX,CL AX=2341H ROR AX,CL AX=4123H SHL AX,CL AX=2340H SHR AX,CL AX=0123H SAR AX,CL AX=0123H RCL AX,CL 带进位标志位的循环左移 RCR AX,CL 带进位标志的循环右移 4、设有以下部分程序段: TABLE DW 10H,20H,30H,40H,50H ENTRY DW 3 ┇ LEA BX,TABLE ADD BX,ENTRY MOV AX,[BX] ┇ 要求:(1)将以上程序段补充成为一个完整的汇编程序。

福建师范大学微机原理期末考卷(有答案)

福建师范大学微机原理期末考试试卷 班级:___电子信息________ 姓名:_zhouyi__________学号: ____________ 一、判断题(每题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 6、将十六进制数FF.1转换成十进制数是__C______。

相关主题