微型计算机原理与接口技术

49练习题

10、写一个宏定义,要求能把任意一个寄存器的最低位移至另一个存储器的最高位中。

DATA SEGMENT

VAR1 DB 4,6

VAR2 DD 200 DUP(?)

DATA ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATA,SS:STACKS

START:

MOV AX,DATA

MOV DS,AX

XTY MACRO X,Y

MOV AX,X

AND AX,1

ROR AX,1

MOV Y,AX

ENDM

MOV DX,1

MOV AX,0

XTY DX,AX,

MOV AH,4CH

INT 21H

CODES ENDS

END START

11、利用DOS功能调用从键盘输入60个字符到缓冲区BUF中,在按下ENTER键后在屏幕上显示这些字符。请写出程序段。

DATA SEGMENT

ST1 DB 'Please input 60 characters from keyboard.',0DH,0AH,'$'

BUF DB61 DUP(?)

DATA ENDS

COD SEGMENT

ASSUME CS:COD,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DL,07H

MOV AH,2

INT 21H

MOV DX,OFFSET ST1

MOV AH,9

INT 21H

LEA SI, BUF

MOV CX,60

LP:

MOV AH,7

INT 21H

MOV [SI],AL

CMP AL,0DH

JZ EXIT

INC SI

LOOP LP

EXIT:

MOV BX,60

SUB BX,CX

MOV CX,BX

LEA SI, BUF

LP2:

MOV DL,[SI]

MOV AH,6

INT 21H

INC SI

LOOP LP2

MOV AH,4CH

INT 21H

COD ENDS

END START

12、试写一段程序,要求先给出一声铃响提示,屏幕上显示:“Please input a alphabet:”,然后从键盘输入一个字母送BL

DATAS SEGMENT

ST1 DB 'Please Input a alphabet:',0DH,0AH,'$'

ST2 DB ?

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

MOV DL,7

MOV AH,2

INT 21H

MOV DX,OFFSET ST1

MOV AH,9

INT 21H

MOV AH,1

INT 21H

MOV BL,AL

MOV AH,4CH

INT 21H

CODES ENDS

END START


第五章汇编语言程序设计

5-1:试用8086CPU的指令实现Y = (X1 +X2)/2的程序设计。

DATAS SEGMENT

X1 DB 34H

X2 DB 89H

Y DW ?

DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

MOV AX,0

MOV AL,X1

MOV BL,X2

ADD AL,BL

ADC AH,0

SAR AX,1

MOV [Y],AX

MOV AH,4CH

INT 21H

CODES ENDS

END START


5-1(老书):编制实现两个三十二位数相乘的程序。

DATA SEGMENT

MULNUM DW 1234H

DW 0B8FDH

DW 0DFE6H

DW 78FFH

DW 4 DUP(?)

DATA ENDS

COD SEGMENT

ASSUME CS:COD,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

XOR AX,AX

LEA BX,MULNUM

MUL32:

MOV AX,[BX]

MOV SI,[BX+4]

MOV DI,[BX+6]

MUL SI ;B*d

MOV [BX+8],AX

MOV [BX+0AH],DX

MUL DI ;B*C

ADD AX, [BX+0AH]

ADC DX,0

MOV [BX+0AH],AX

MOV [BX+0CH],DX

XOR AX ,AX

XOR DX ,DX

MOV AX,[BX+2]

MUL SI ;A*D

ADD AX,[BX+0AH]

ADC DX,[BX+0CH]

PUSHF

MOV AX,[BX+0AH]

MOV DX,[BX+0CH]

XOR AX ,AX

XOR DX ,DX

MOV AX,[BX+2]

MUL DI ;A*C

POPF

ADC AX,[BX+0CH]

ADC DX,0

MOV [BX+0CH],AX

MOV [BX+0EH],DX

XOR AX,AX

MOV AH,4CH

INT 21H

COD ENDS

END START

5-2:将一位十六进制数转换成与它相对应的ASCII码。

DATAS SEGMENT

TAB

DB 30H,31H,32H,33H,34H,35H,36H,37H

DB 38H,39H,41H,42H,43H,44H,45H,46H

HEX DB 8

ASC DB ?

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

MOV BX,OFFSET TAB

MOV AL,HEX

XLAT

MOV ASC,AL

MOV AX,4C00H

INT 21H

CODES ENDS

END START

5-3:要求对不足250个的学生成绩进行统计分析,统计出优秀、及格和不及格的人数。

DATAS SEGMENT

BUF DB 15

DB 64,78,89,55,69,98,45,67,96,99,92,89,85,91,45

NUM DB 3 DUP(?)

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

MOV SI,OFFSET BUF

MOV CH,[SI]

MOV CL,0

MOV BX,0

INC SI

LP:

MOV AH,[SI]

CMP AH,90

JB BLOW90

INC BH

NEXT:

INC SI

DEC CH

JNZ LP

MOV SI,OFFSET NUM

MOV [SI],BH

MOV [SI+1],BL

MOV [SI+2],CL

MOV AH,4CH

INT 21H

BLOW90:

CMP AH,60

JB BLOW60

JMP ABOV60

ABOV60:

INC BL

JMP NEXT

BLOW60:

INC CL

JMP NEXT

CODES ENDS

END START

5-5利用表内地址跳转法来实现使键盘上ABCD4个字母键成为4条输入命令,使之分别对应4个具有不同算法的控制子程序。

DATAS SEGMENT

BASE DB 'pa','pb','pc','pd'

KEY DB ?

DATAS ENDS

STACKS SEGMENT

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

LOP:

XOR AX,AX

MOV AH,1

INT 21H

CMP AL,41H

JB LOP

CMP AL,44H

JA LOP

SUB AL,41H

MOV BX,OFFSET KEY

MOV AH,0

ADD BX,AX

JMP WORD PTR[BX]

MOV AH,4CH

INT 21H

CODES ENDS

END START

5-6:试编写一程序,统计出某一字数据中“1”的个数。

DAT SEGMENT

XDA DW 3AD8H

CONT DB ?

DAT ENDS

COD SEGMENT

ASSUME CS:COD,DS:DAT

START:

MOV AX,DAT

MOV DS,AX

MOV CL,0

MOV AX,XDA

LOP:

CMP AX,0

JZ EXIT

SHL AX,1

JNC NEXT

INC CL

NEXT:

JMP LOP

EXIT:

MOV CONT,CL

INT 20H

COD ENDS

END START

5-7:编写程序将两个n字节的无符号数相加,结果存入SUM开始的n+1字节存储区中。

DAT SEGMENT

DAT1 DB 12H,34H,56H,71H,23H,45H,67H

DAT2 DB 76H,54H,32H,17H,65H,43H,21H

SUM DB 8 DUP(?)

DAT ENDS

COD SEGMENT

ASSUME CS:COD,DS:DAT

START:

MOV AX,DAT

MOV DS,AX

XOR AX,AX

MOV BX,OFFSET DAT1

MOV SI,OFFSET DAT2

LEA DI,SUM

MOV CX,7

CLC

LP:

MOV AL,[SI]

ADC AL,[BX]

MOV [DI],AL

INC BX

INC SI

INC DI

LOOP LP

ADC BYTE PTR [DI],0

MOV AH,4CH

INT 21H

COD ENDS

END START

5-8:编制程序用单字符输出的DOS功能调用向屏幕输出以“%”结束的字符串。

DAT SEGMENT

ST1 DB 'How are you?%'

DAT ENDS

COD SEGMENT

ASSUME CS:COD,DS:DAT

START:

MOV AX,DAT

MOV DS,AX

LEA SI,ST1

AGAIN:

MOV DL,[SI]

CMP DL,'%'

JZ ENDOUT

MOV AH,2

INT 21H

INC SI

JMP AGAIN

ENDOUT:

MOV AH,4CH

INT 21H

COD ENDS

END START

5-9:设有16个内存单元需要修改,修改规律是第136912号单元均加5,其余单元均加10,试用循环结构变成实现。

DATAS SEGMENT

XDA DB 16 DUP(?)

LRULER DW 0A490H

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

MOV SI,0

MOV CX,16

MOV BX,OFFSET XDA

MOV DX,LRULER

AGAIN:

MOV AX,BX[SI]

SHL DX,1

JC ADD5

ADD AX,10

JMP SHORT RESULT

ADD5:

ADD AX,5

RESULT:

MOV BX[SI],AX

INC SI

LOOP AGAIN

MOV AH,4CH

INT 21H

CODES ENDS

END START

5-10:设某一数组的长度为N,各元素均为字数据,试编制一个程序使该数组中的数据按照从小到大的次序排列。

DATAS SEGMENT

DAT DB 25,68,86,98,34,67,12,4,49,27

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

MOV BX,0

MOV CX,10

DEC CX

LOP1:

MOV DX,CX

LOP2:

MOV AL,DAT[BX]

CMP AL,DAT[BX+1]

JBE CONTI

XCHG AL,DAT[BX+1]

MOV DAT[BX],AL

CONTI:

ADD BX,1

LOOP LOP2

MOV CX,DX

MOV BX,0

LOOP LOP1

MOV AH,4CH

INT 21H

CODES ENDS

END START

5-11:定义一个显示两个十六进制数的子程序:

DATAS SEGMENT

BUF DB 12H

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

LEA SI,BUF

MOV BL,[SI]

CALL DISPP

MOV AH,4CH

INT 21H

DISPP PROC NEAR

PUSH DX

PUSH CX

MOV DL,BL

MOV CL,4

ROL DL,CL

AND DL,0FH

CALL DISP1

MOV DL,BL

AND DL,0FH

CALL DISP1

POP CX

POP DX

RET

DISPP ENDP

DISP1 PROC NEAR

OR DL,30H

CMP DL,3AH

JB DDD

ADD DL,07H

DDD:

MOV AH,2

INT 21H

RET

DISP1 ENDP

CODES ENDS

END START

5-12:编制显示四位十六进制数的子程序。

DATAS SEGMENT

BUF DW 1234H

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

LEA SI,BUF

MOV AX,[SI]

CALL DISP4

MOV AH,4CH

INT 21H

DISP4 PROC NEAR

PUSH BX

PUSH CX

PUSH DX

PUSH AX

MOV AL,AH

CALL DISP2

POP AX

CALL DISP2

POP DX

POP CX

POP BX

RET

DISP4 ENDP

DISP2 PROC NEAR

MOV BL,AL

MOV DL,AL

MOV CL,4

ROL DL,CL

AND DL,0FH

CALL DISP1

MOV DL,BL

AND DL,0FH

CALL DISP1

RET

DISP2 ENDP

DISP1 PROC

OR DL,30H

CMP DL,3AH

JB DDD

ADD DL,07H

DDD:

MOV AH,2

INT 21H

RET

DISP1 ENDP

CODES ENDS

END START

5-13:已知数组由100个字数据组成,试变成求出这个数组元素之和。

DATAS SEGMENT

ARY DW 25 DUP(12H,5DH,3CH,7AH)

SUM DW ?

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

CALL RADD

MOV AH,4CH

INT 21H

RADD PROC NEAR

PUSH AX

PUSH BX

PUSH CX

PUSH DX

LEA BX,ARY

MOV CX,100

XOR AX,AX

MOV DX,AX

CL1:

ADD AX,[BX]

JNC CL2

INC DX

CL2:

ADD BX,2

LOOP CL1

MOV SUM,AX

MOV SUM+2,DX

POP DX

POP CX

POP BX

POP AX

RET

RADD ENDP

CODES ENDS

END START

5-14:已知数组A100个字数据组成,数组B50个字数据组成,试编程分别求出这两个数组元素之和。

DATAS SEGMENT

CA DW 100

ARA DW 20 DUP(34H,5FH,8DH,4AH,9BH)

SA DD ?

CB DW 50

ARB DW 10 DUP(3DH,4CH,2EH,88H,1CH)

SB DD ?

TAB DW 3 DUP(?)

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

MOV AX,OFFSET CA

MOV TAB,AX

MOV AX,OFFSET ARA

MOV TAB[2],AX

MOV AX,OFFSET SA

MOV TAB[4],AX

MOV SI,OFFSET TAB

CALL RADD

MOV AX,OFFSET CB

MOV TAB,AX

MOV AX,OFFSET ARB

MOV TAB[2],AX

MOV AX,OFFSET SB

MOV TAB[4],AX

MOV SI,OFFSET TAB

CALL RADD

MOV AH,4CH

INT 21H

RADD PROC NEAR

MOV BX,[SI]

MOV CX,[BX]

MOV BX,[SI+2]

MOV DI,[SI+4]

XOR AX,AX

MOV DX,AX

CL1:

ADD AX,[BX]

JNC CL2

INC DX

CL2:

ADD BX,2

LOOP CL1

MOV [DI],AX

MOV [DI+2],DX

RET

RADD ENDP

CODES ENDS

END START

5.8 练习题(新书)

3、编程题

1)试编写一程序,把数组STRING中存放的208位二进制数分成正整数组和负数数组,并统计正数、负数和零的个数,结果分别存放到PMZ三个单元。

DAT SEGMENT

STRING DW 2 DUP(3045H,0FD34H,0D3DH,9899H,0,3DF2H,0,0FFDEH,93FDH,0DE6CH)

P DW 20 DUP(?)

M DW 20 DUP(?)

Z DW 20 DUP(?)

DAT ENDS

COD SEGMENT

ASSUME CS:COD,DS:DAT

START:

MOV AX,DAT

MOV DS,AX

XOR BP,BP

LEA SI ,P ;正数

LEA DI ,M ;负数

LEA BP ,Z ;

PUSH SI

PUSH DI

PUSH BP

LEA BX,STRING

MOV CX,20

LL:

MOV AX,[BX]

PUSH AX

ADD AX,AX

JZ L1

POP AX

PUSH AX

SAL AX,1

JC L2

POP AX

MOV [SI] ,AX

ADD SI,2

JMP LA

LA:

ADD BX ,2

LOOP LL

XOR CX,CX

MOV CX,2

POP AX

MOV DX,BP

SUB DX,AX

SHR DX,CL

MOV [BP] ,DX

POP AX

MOV DX,DI

SUB DX,AX

SHR DX,CL

MOV [DI] ,DX

POP AX

MOV DX,SI

SUB DX,AX

SHR DX,CL

MOV [SI] ,DX

MOV AH,4CH

INT 21H

L1:

POP AX

MOV [BP],AX

ADD BP ,2

JMP LA

L2:

POP AX

MOV [DI] ,AX

ADD DI,2

JMP LA

COD ENDS

END START

2)试编写一个程序,完成10个一位十进制数累加,累加结果以分离式BCD码形式存放于AH(高位),AL(低位)寄存器。

DAT SEGMENT

D1 DB 2,3,4,5,6,7,8,3,4,5

D2 DB ?

DAT ENDS

COD SEGMENT

ASSUME CS:COD,DS:DAT

START:

MOV AX,DAT

MOV DS,AX

LEA SI,D1

XOR AX,AX

MOV CX,10

L1:

ADD AL,[SI]

AAA

INC SI

LOOP L1

MOV AH,4CH

INT 21H

COD ENDS

END START

3)试编写一程序,将2个字节的二进制数,变换成用ASCII码表示的四位十六进制书(用四字节表示)。

DATAS SEGMENT

TAB DB 41H,42H,43H,44H,45H,46H

BIN DB '1101101110011110'

BUF DB 4 DUP(?)

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

LEA BX,TAB

LEA SI,BIN

LEA DI,BUF

MOV CX,4

LP1:

MOV AX,[SI+2]

PUSH CX

XOR CX,CX

MOV CL,8

ROR AX,CL

SUB AX,3030H

MOV DX,[SI]

ROR DX,CL

SUB DX,3030H

SHL AH,1

ADD AH,AL

MOV CL,2

SHL DL,CL

MOV CL,3

SHL DH,CL

ADC DH,DL

ADC AH,DH

CMP AH,0AH

JB LP2

SUB AH,0AH

MOV AL,AH

XLAT

LP3:

MOV [DI],AL

ADD DI,1

ADD SI,4

POP CX

LOOP LP1

MOV AH,4CH

INT 21H

LP2:

ADD AH,30H

MOV AL,AH

JMP LP3

CODES ENDS

END START

6编写一个程序,计算10016位正整数之和,如果和不超过16位字的范围(0 ~ 65535),则保存其和到SUM,如果超过则显示“OVERFLOW!!”

DAT SEGMENT

DAT1 DW 25 DUP (2D4EH,5611H,1234H,7891H)

BUF DW ?

STR1 DB 'overflow!!',0DH,0AH,'$'

DAT ENDS

COD SEGMENT

ASSUME CS:COD,DS:DAT

START:

MOV AX,DAT

MOV DS,AX

MOV SI,OFFSET DAT1

MOV BX,OFFSET BUF

MOV CX,100

XOR AX,AX

L1:

ADD AX,[SI]

JC DISP

LOOP L1

MOV [BX],AX

MOV AH,4CH

INT 21H

DISP PROC NEAR

MOV DX,OFFSET STR1

MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

DISP ENDP

COD ENDS

END START

5.8练习题(老书)

4)试编写一个汇编程序,要求实现将ASCII码表示的两位十进制数转换为一字节二进制数。

DATA SEGMENT

ASC DB 32H,38H

ASCEND DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

MAIN PROC FAR

START:

MOV AX,DATA

MOV DS,AX

XOR BX,BX

MOV BX,OFFSET ASC

MOV AX,0

MOV AL,[BX]

CMP AL,30H

JL EXIT

CMP AL,39H

JG EXIT

SUB AL,30H

MOV DL,[BX+1]

CMP DL,30H

JL EXIT

CMP DL,39H

JG EXIT

SUB DL,30H

MOV CL,4

SHL DL,CL

ADD AL,DL

MOV ASCEND,AL

EXIT:

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

5)某存储区中存有20个单字节数,试编写一汇编程序分别求出其绝对值并且将结果保存到CL中。

DAT1 SEGMENT

MUM DB 1,2,3,-9,0,7,5,-4,-7,-11,34,-67,-44,-51,1,3,6,8,9,3

DAT1 ENDS

COD SEGMENT

ASSUME CS:COD, DS:DAT1

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DAT1

MOV DS,AX

MOV CX,20

MOV SI,OFFSET MUM

LP1:

MOV AL,[SI]

AND AL,AL

JNS DONE

NEG AL

DONE:

MOV [SI],AL

INC SI

LOOP LP1

MOV AH,4CH

INT 21H

START ENDP

COD ENDS

END START

6)试编写一汇编程序,将AX中各位取反,然后统计出AX“0”的个数,将结果保存到CL中。

DATA SEGMENT

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE ,DS:DATA

START:

MOV AX,0E001H

MOV DL,0

MOV CL,16

NOT AX

RETEST:

AND AX,AX

JS SKIP

INC DL

SKIP:

SHL AX,1

LOOP RETEST

MOV CL,DL

EXIT:

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

12)已知a1~a20依次存放在以BUF为首地址的数据区,每个数据占两个字节,SUM也是两个字节。试编程计算word/media/image1.gif

DATA SEGMENT

DAT DW 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

SUM DW ?

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE, DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV AX,0

MOV SI,OFFSET DAT

MOV CX,20

CLC

LP1:

ADC AX,[SI]

INC SI

INC SI

LOOP LP1

MOV SUM,AX

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

14)编一个子程序,计算word/media/image2.gif。设abcdt均为一位十进制数,结果存入RESULT单元。

DATA SEGMENT

A DB 1

B DB 2

C DB 3

D DB 4

T DB 2

Q DW 3 DUP(?)

RESULT DW ?

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE ,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET Q

MOV BL,T

MOV BH,0

MOV AX,BX

MUL BX

MOV [SI],AX

MUL BX

MOV [SI+2],AX

MOV AL,A

MOV AH,0

MUL WORD PTR[SI+2]

MOV RESULT,AX

MOV AL,B

MOV AH,0

MUL WORD PTR[SI]

ADD RESULT,AX

MOV AL,C

MUL T

ADD RESULT,AX

MOV AL,D

MOV AH,0

ADD RESULT,AX

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

15)求出前20个斐波那契数,存入数据变量FN始的区域中。

斐波那契数列定义为:word/media/image3.gifword/media/image4.gifword/media/image5.gif

DATA SEGMENT

F1 DW 0

F2 DW 1

FN DW 20 DUP(?)

RESULT DW ?

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE ,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV CX,19

MOV AX,F1

MOV BX,F2

MOV SI,OFFSET FN

MOV [SI],AX

INC SI

INC SI

MOV [SI],BX

LL:

ADD AX,BX

ADD SI,2

MOV [SI],AX

MOV BX,[SI-2]

LOOP LL

MOV AH,4CH

INT 21H

MAIN ENDP

CODE ENDS

END START

完。

PS

以上这些程序汇编代码峰哥已经全部调试过了。

本来想自己编译,调试,验证是否能出来正确的结果,再将正确的代码写进来。

可无奈每次整理完代码已经快凌晨一点,笔记本电脑的电池已经快耗光

有时候一进入死循环,只能按住笔记本电脑电源键大约三秒来解决问题。

所以,如果以上汇编代码有错误的地方,(比如我在整理的时候,误删了某个字符等。)

恳请大家斧正。

当然,在这之前,请务必将你认为是对的程序代码,以及你认为是错误的代码输入电脑,

按照

轻松汇编——TD调试——VIEW——CPU——Trace——Trace——Trace——……

的方式看每个寄存器的状态是否符合要求,来进行调试。

最后,还是那句老话,祝愿大家《微型计算机原理与接口技术》这门课以及它的课设,

都能得到一个不错的成绩。

《微型计算机原理与接口技术.doc》
将本文的Word文档下载,方便收藏和打印
推荐:
下载文档
热门推荐
相关推荐