首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
根据16位逻辑变量L的内容对内存单元中连续存放的十六个字符的数组SOURCE作如下处理: (1)若L的第i位为1,将SOURCE[i]的最高位置加偶校验位 (2)若L的第i位为0,SOURCE[i]不变 例如:L=0005 转换之前:67H,
根据16位逻辑变量L的内容对内存单元中连续存放的十六个字符的数组SOURCE作如下处理: (1)若L的第i位为1,将SOURCE[i]的最高位置加偶校验位 (2)若L的第i位为0,SOURCE[i]不变 例如:L=0005 转换之前:67H,
admin
2012-03-05
40
问题
根据16位逻辑变量L的内容对内存单元中连续存放的十六个字符的数组SOURCE作如下处理:
(1)若L的第i位为1,将SOURCE
的最高位置加偶校验位
(2)若L的第i位为0,SOURCE
不变
例如:L=0005 转换之前:67H,61H,4EH,38H……
转换之后:E7H,61H,4EH,38H……
部分程序已经在PROG1.ASM中给出,请填空BEGIN到END之间已经给出的源程序,使其完整(空白已经用横线标出,每行空白一般只需要一条指令,但功能相当的多条指令亦可)或删除BEGIN与END之间的原有代码并自行编写程序片段完成所需的功能。
原有数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,结果要求从RESULT开始存放,由SAVE保存到OUTPUT1.DAT文件。
对程序必须进行汇编,并与IO.OBJ连接产生PROG1.EXE执行文件,最终产生运行结果(无结果或结果不正确均不得分)。
部分源程序如下:
EXTRN LOAD:FAR,SAVE:FAR
N EQU 16
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
L DW ?
SOURCE DB N DUP(?)
RESULT DB N DUP(0)
NAME0 DB ’INPUT1.DAT’,0
NAME1 DB ’OUTPUT1.DAT’,0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAC
START PROC FAR
PUSH DS
XOR AX, AX
PUSH AX
MOV AX,DATA
MOV DS, AX
LEA DX,L ; 数据区起始地址
LEA SI, NAME0 ; 原始数据文件名
MOV CX,2 + N ; 字节数
CALL LOAD ; 从"INPUT1.DAT"中读取数据
**** BEGIN ****
LEA SI, SOURCE
LEA DI, RESULT
MOV CX,N
MOV DX, (1)
LO: MOV AL, [SI]
(2) L,DX
JZ STORE
AND AL,AL
(3) STORE
(4)
STORE: MOV [DI],AL
INC SI
INC DI
(5)
LOOP LO
***** END *****
LEA DX,RESULT ; 结果数据区首地址
LEA SI, NAME1 ; 结果文件名
MOV CX,N ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
相关知识:
●测试指令
指令格式:TEST R,R或TEST R,M或TEST M,R或TEST R,I或TEST M,R(其中R为寄存器,M为内存变量,I为立即数)。
测试指令将两个操作数进行逻辑乘操作,但并不把结果写回目的操作数,我们若需要知道某个寄存器中第i位是否为1,可以与一个立即数(这个立即数的第i位为1,其他位为0)进行TEST运算,结果为0,则被测试位为0,否则被测试位为1。
●测试寄存器中1的个数的奇偶性。
可以将这个寄存器进行不改变其内容的逻辑乘运算,然后查看一下奇偶标志位即可。
●对寄存器的内容进行位操作
利用“AND”、“OR”运算可对寄存器或某个内存单元中相应的清0或置1。
编程思路:
第一步:分析本程序要求完成的功能。
本程序要求完成以下功能:
(1)从数据文件INPUT1.DAT中读取16个字符存放在SOURCE开始的内存单元中。
(2)将SOURCE开始的16个字符按逻辑尺L的内容决定是否在字符的最高位置1,然后依次放在RESULT开始的内存单元中。
(1)将处理之后的字符串存入到OUTPUT1.DAT。
第二步:用相应程序汇编实现其功能。
(1)数据的读取和存入题目中已经给出,只要完成16个字符的最高位置1操作即可。
(2)对于一个数组的排序操作可按下面的方法进行。从0到15依次取得逻辑尺L的第i位的值,若为0,则不对SOURCE
作操作;否则,计算SOURCE
中1的个数,若为奇数则在SOURCE
的最高位置1,否则不作操作,然后将其存放在RESULT开始的内存单元中。
这里我们仍然采用填空,而不重新编写程序,采用填空的方式解题对于我们阅读程序的能力会有所帮助。通过阅读程序我们发现程序是采用循环的方式测试一个数的第i位是否为1(要么将被测试数进行移位操作,然后与1进行TEST运算,要么将1进行移位操作,与被测试数进行TEST运算均可获得结果),然后根据第i位是否为1加偶校验位。
选项
答案
(1) 1 (2) TEST (3) JP (4) OR AL,80H (5) SHR L,1 或 SHL DX,1
解析
转载请注明原文地址:https://kaotiyun.com/show/rKgZ777K
本试题收录于:
三级PC技术题库NCRE全国计算机三级分类
0
三级PC技术
NCRE全国计算机三级
相关试题推荐
Windows98是由多个模块组成的一个功能强大的操作系统,下列哪个模块负责处理键盘和鼠标的输入,并以窗口、图标、菜单和其他界面元素的形式完成输出任务?
下面关于作为PC机内存使用的ROM和RAM的叙述中,错误的是:
下面哪一个选项中的程序段可以将AX寄存器的高4位移至BX的低4位?
Pentium微处理器在实地址模式下,借助于HIMEM.SYS程序可以获得额外的高端内存空间,其物理地址范围是:
在Windows98环境下,虚拟设备驱动程序文件和动态链接库文件是最常见的两种系统文件,它们的文件扩展名通常为.VXD和【】。
为了实现异构计算机网络的互连,国际标准化组织制定了一个开放系统互连参考模型(OSI/RM)的国际标准。该标准将网络的通信功能划分为上【】个层次。
Windows98提供了监视系统工作状况的多种系统工具。在下列系统工具中,可以用来查看当前可用内存大小的是
Windows98虽然是一个比较成熟、健壮的操作系统,但有时也会出现应用程序在运行过程中“不响应”现象。用户如需强行结束一个应用程序,可通过按【】组合键以打开“关闭程序”对话框。
彩色显示器的颜色是由红(R)、绿(G)、蓝(B)三种基色合成而得到的。假定表示R、G、B三中基色的二进制位数都是8位,则可显示的颜色数有多少种?
若两片8237A(DMA控制器)工作在级联方式且按下图连接,每个8237A优先级均固定不变,则连接到8237A的DMA请求引脚上的通道2、通道3、通道5、通道6的请求信号,其优先级从高到低的顺序是
随机试题
高压控制器动作停止后,应手动复位后再起动压缩机。()
急性低氧性呼吸衰竭的发病机制包括
不属于功能性矫治器的是
男性,24岁,因气促1周就诊,查体颈静脉怒张,血压90/65mmHg,心界向两侧扩大,心率120次/分,律齐,心音遥远,肝肋下3指,移动性浊音(-),最可能的诊断是
【背景资料】某施工企业承担地面建筑的基坑开挖工程。基坑开挖深度为5m,基坑北侧距基坑边缘4m处已有一栋三层永久建筑物,基坑边缘堆有施工单位的大量建筑钢材。基坑所处的地质条件为砂质土层,地下水位在地表以下4m。基坑设计采用钢板桩支护。施工前建设单位
改革开放以来,大批的劳动者从内地向东南沿海地区流动,去当地一些新兴的民营企业工作,这些劳动者经常在不同企业间跳槽。有些民营企业为素质和绩效比较好的员工提供脱产培训的机会,但是要求接受培训的员工签订培训协议,协议的主要内容是,员工在受训后必须在企业中工作一定
对精神疾病患者进行强行治疗或者对杀手从重从快的斩立决,是__________,而非__________。填入划横线部分最恰当的一项是()。
“接受外人的照料,开始正常的活动,如吃东西、玩玩具,但是看见母亲时又会出现悲伤的表情”属于分离焦虑的()。
Airpollutiontriggersmoreheartattacksthanusingcocaineandposesashighariskofsparkingaheartattackasalcohol,cof
算法的有穷性是指( )。
最新回复
(
0
)