首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
根据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
78
问题
根据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全国计算机三级
相关试题推荐
从计算机软硬件资源管理角度来看,操作系统的主要功能包括五个方面:处理器管理、存储管理、文件管理、设备管理和作业管理。其中,存储管理的主要功能是有效地管理系统的存储资源,特别是对下列选项中的哪种资源进行管理?
根据下面的数据定义:ORG10HDAT1DB10DUP(?)DAT2EQU12HDAT3DW56H,$+10数据项$+10的值是:
下面是关于Pentium微处理器实地址模式和虚拟8086模式的描述,其中错误的是:
数字视频信息的数据量相当大,对PC机的存储、处理和传输都是极大的负担,为此必须对数字视频信息进行压缩编码。试问下面哪一种不是数字视频压缩编码的国际标准?
PC机中有一种类型为.mid的文件,下面是关于此类文件的一些叙述,其中错误的是:
目前,向PC机输入视频信息的主要途径有如下几种,其中哪几种途经不需要PC机参与将模拟视频信号数字化?Ⅰ.将家用录放像机播放的视频信号输入PC机Ⅱ.将有线电视电缆送来的信号输入PC机Ⅲ.使用数字摄像机拍摄后,通过IEEE-1394接口输入PC机
下面四种PC机使用的DRAM内存条中,速度最快的是:
以太局域网为了避免网卡之间的地址冲突,每块网卡都必须给定一个全球惟一的地址,称为网卡的物理地址,厂家在生产网卡时会将该地址烧入网卡的ROM中,该地址可用12位的【】进制数表示。
Windows98虽然是一个比较成熟、健壮的操作系统,但有时也会出现应用程序在运行过程中“不响应”现象。用户如需强行结束一个应用程序,可通过按【】组合键以打开“关闭程序”对话框。
在Windows98环境下,如果目前仅有1个DOS应用程序、2个Win16应用程序和3个Win32应用程序同时在运行,则系统当前应有【】个虚拟机在工作。
随机试题
关于特许协议的法律性质有多种学说争论的焦点在于:___________。
男,28岁,高处跌伤1小时,神清,左小腿肿胀、压痛,左膝下8cm处短缩畸形,皮肤破裂口长约10cm,足背动脉搏动消失,正确的诊断应是()
导致急性肾衰的原因庆大霉素对肾脏损伤的部位
按《建筑抗震设计规范》(GB50011—2001),下列关于局部地形条件对于地震反应影响的描述中,正确的是()。
在用锅炉一般()进行一次外部检验,()进行一次内部检验,()进行一次水压试验。
某分包商承担了2000m2缸砖面层地面施工任务,计划于6个月内完成,预算的各工作项目单价和计划完成的工作量如表7-29所示,该工程进行了3个月以后,发现某些工作项目实际已完成的工作量及实际单价与原计划有偏差,其实际数值也列于表7-29中。[问题
业务收支以外币为主的企业,可以选用某种外币作为记账本位币,但编制财务会计报告时应折算为人民币。()
确定进出口商品的价格,除了要考虑商品的质量和档次、运输的距离、成交数量外,还要考虑()。
商业银行的核心存款除了极少部分外,几乎不会在一年内提取,商业银行可将其()投入流动资产。
2011年1—8月,上海市接待“新马泰”游客()人次。
最新回复
(
0
)