计算机硬件技术上机考试,2016年计算机三级PC技术上机考试指导

2016年计算机三级PC技术上机考试指导

1 上机考试环境

8cda7fc11c9ac4edbdf86a7cb481764d.png

1.硬件环境

主机

386、486、586及其各种兼容机

内存

640KB基本内存,具有1MB以上的扩充内存

显示卡

彩显VGA

显示内存

具有512KB以上的显示内存

硬盘空间

10MB以上硬盘空间

2.软件环境

MS-DOS5.0、PC-DOS5.0及以上各种版本

汉字系统

希望汉字系统UCDOS5.0及以上各种版本(正版软件)

TURBO-C 2.0

驱动程序

使用HIMEM.SYS、EMM386.EXE等扩充内存管理器

3.配置文件CONFIG.SYS设置

FILES=64

DEVICE=C:\DOS\HIMEM.SYS

DEVICE=C:\DOS\EMM386.EXE RAM

DOS=HIGH,UMB

BUFFERS=16

4.修改错误

这种题型是在程序中设置了若干错误,考生应根据题目要求,修改程序中的错误,使程序能正常汇编、连接,并获得正确的运行结果。

下面是一个修改程序错误的例子,题目要求是:

内存中从SOURCE开始连续存放着二十个字(WORD),试统计每个字中二进制位为1的个数,结果以字节存放。

例如: 内存中有 139CH,5B8CH,1489H,...

结果为 07H, 08H, 05H,...

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

修改源程序中的错误,使程序运行后能够获得考题所提出的运行结果。

;PROG1.ASM

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

DSEG SEGMENT

SOURCE DW N DUP(?)

RESULT DW N DUP(0)

NAME0 DB 'INPUT1.DAT',0

NAME1 DB 'OUTPUT1.DAT',0

DSEG ENDS

SSEG SEGMENT STACK

DB 128 ;错误1

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG,SS:SSEG

START: PROC FAR ;错误2

PUSH DS

XOR AX,AX

PUSH AX

MOV DS,DSEG ;错误3

LEA DX,SOURCE ;数据区起始地址

LEA SI,NAMEO ;错误4

MOV CX,2*N ;字节数

CALL LOAD ;从INPUT1.DAT中读取数据

LEA SI,SOURCE

CLD

MOV DX,N

LOOP0: LODS SOURC

XOR BX,BX

MOV CX,16

LOOP1: ROL AX,1

JNC NEXT

INC BX

NEXT: LOOP LOOP0 ;错误5

MOV DESULT,BL ;错误6

INC DI

DEC DX

JNZ LOOP0

LEA DX,RESULT ;结果数据区首址

LEA SI,NAME1 ;结果文件名

MOV CX,N ;结果字节数

CALL SAVE ;保存结果到OUTPUT1.DAT

RET

START ENDP

CSEG ENDS

END START

上面的程序中设置了六种类型的错误,其错误性质是:

错误1,虽然这条伪指令语句没有语法错误,但这样设计是不合理的,因为该语句只是在堆栈中存放了一个字节的数据,也就是说,堆栈空间只有一个字节的大小,因此执行本程序时显然是不够用的,当程序执行后必然会出现不可预料的结果。

错误2,根据伪指令语句格式要求,伪指令名后面没有冒号,因此该语句非法。

错误3,根据传送指令的要求,立即数不能直接传送给段寄存器。也就是说,为了对段寄存器初始化,必须先把立即数送到某通用寄存器,然后再由通用寄存器把立即数送到段寄存器,才能达到对段寄存器初始化之目的'。

错误4,由于该指令把NAME0误写成NAMEO,汇编时找不到变量名NAMEO,因而指出NAME0未定义,只要将NAMEO改写为NAME0即可。

错误5,这条语句没有语法错误,但这样设计目标地址不能获得考题规定的运算结果,必须将目标地址LOOP0改为LOOP1,程序运算结果才会正确。碰到这种类型的错误,考生应仔细阅读程序,彻底理解每一条指令在程序中所起的作用,才能改正这种类型的错误。

错误6,该指令错误的性质是操作数类型不匹配,因为目的操作数为字变量,而源操作数为8位寄存器。因此,为了使操作数类型匹配,应将BL寄存器改为BX寄存器,或者将RESULT改为字节变量。

需要说明的是,考生在识别错误时首先应充分利用汇编和连接软件工具检查程序中的语法错误,然后再通过调试与运行,验证程序设计中使用的指令以及算法的正确性。否则,面临众多的隐藏错误,将一定会感到束手无策。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值