请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字节和低位字节进行逻辑与运算及逻辑或运算。运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,高位字节存入逻辑或运算的结果)。例如:内存中有:AA55H,55AAH,FFAAH结果为: PP00H,FF00H,FFAAH部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放, 由过程SAVE保存到文件OUTPUT1.DAT中。请填空B

题目

请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字节和低位字节进行逻辑与运算及逻辑或运算。运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,高位字节存入逻辑或运算的结果)。

例如:

内存中有:AA55H,55AAH,FFAAH

结果为: PP00H,FF00H,FFAAH

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

请填空BEGIN和END之间已经给出的源程序使其完整,空白处已经用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 3

STAC SEGMENT STACK

DB 128 DUP (?)

STAC ENDS

DATA SEGMENT

SOURCE DW N DUP(?)

RESULT DW 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,SOURCE ;数据区起始地址

LEA SI,NANE0 ;原始数据文件名

MOV CX,N*2 ;字节数

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

; ********* BEGIN **********

MOV DI,OFFSET RESULT

MOV CX,N

MOV BX,00

PRO: MOV AX, (1)

MOV DX,AX

AND (2) ,DH

(3) AH,AL

MOV (4) ,DL

ADD BX,2

(5)

ADD DI,2

(6)

JNZ PRO

; ******** END ********

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

LEA SI,NAME1 ;结果文件名

NOV CX,N*2 ;结果字节数

CALL SAVE ;保存结果到文件

RET

START ENDP

CODE ENDS

END START


相似考题

2.请编制程序,其功能是:内存中连续存放着10个十六位二进制数,每个数的序号依次定义为0,1,…,9。统计每个数中位为0的个数N0,N1,…,N9(均用一个字节表示),然后按序将N0至N9存入内存中,最后再用一个字节表示这10个数中为0的位的总数n(n=N0+N1+…+N9)。例如:内存中有:0000H,000FH,FFFFH…结果为: 10H,0CH,00H…最后为n部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。请填空BEGIN和END之间已给出的源程序使其完整,空白己用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。【试题程序】EXTRN LOAD:FAR,SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTSOURCE DW N DUP(?)RESULT DB N+1 DUP(0)NAME0 DB 'INPUT.DAT',0NAME1 DB 'OUTPUT.DAT',0DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N*2 ; 字节数CALL LOAD ; 从'INPUT.DAT'中读取数据; ******** BEGIN ********MOV DI,OFFSET RESULTMOV CL,NMOV BX,0MOV DR,0PRO: MOV DL,0MOV AX, SOURCE[BX]MOV CH, (1)COUNT: (2)(3) JUMPINC DLJUMP: DEC CHJNZ (4)MOV [DI], DLADD DH,DLINC DIADD (5)DEC CLJNZ PROMOV (6); ******** END ********LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N+1 ; 结果字节数CALL SAVE ; 保存结果到文件RETSTART ENDPCODE ENDSEND START

4.请编制程序,其功能是:内存中连续存放着16个二进制字节数,在原16个数的第4和第5个数之间插入00H,在原16个数的第8和第9个数之间插入55H,在原16个数的第12和第13个数之间插入AAH,在原16个数的最后加入FFH。将按上述方法插入4个字节数后得到的20个字节数存入内存中。例如:内存中有:10H,20H,30H,40H,50H,…,8FH(共16个字节)结果为: 10H,20H,30H,40H,00H,50H,…,8FH,FFH(共20个字节)部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已经给出的源程序使其完整,需填空处已经用横线标出,每个空白一般只需一条指令,也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。[试题程序]EXTRN LOAD:FAR,SAVE:FARN EQU 16STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTSOURCE DB N DUP (?)INDATA DB 0FFH,0AAH,55H,00HRESULT DB N+4 DUP(0)NAME0 DB 'INPUT1.DAT',0NAME1 DB 'OUTPUT1.DAT',0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXEA DX,SOURCE ; 数据区起始地址OV CX,N ; 字节数ALL LOAD ; 从'INPUT1.DAT'中读取数据******** BEGIN ********(1)OV DI,0OV CX,4OV BX,4CHAN: (2)OV RESULT[DI],AH(3)NC DIEC CXZ INSER1MP CHANINSER1: PUSH SIMOV SI,BXMOV AX,WORD PTR INDATA[SI-2]MOV RESULT [DI], (4)DEC BXJZ (5)MOV CX,04H(6)INC (7)JMP CHANEXIT: &

更多“请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字节和低位字节进 ”相关问题
  • 第1题:

    假设某个字的值是1234H,其低位字节地址是20H,高位字节地址是21H,那么该字地址是___。


    正确答案:30H


  • 第2题:

    已知50H和51H中存有一个16位的二进制数,高位在前,低位在后,请编程将它们乘以2,再存回原处。


    × 传输周期:T=4/(50×106):4×2×10-8=8×10-8s传输率:R=2/T=2/(8×10-8)=25×lO6Bps(2)传输率:R=4/T=4/(8×10-8)=50×106Bps(3)传输率:R=2/(0.5×T):50×106Bps

  • 第3题:

    判断5、将十进制数转换为二进制数,整数部分和小数部分需要分开进行。整数部分的转换方法是连续除以2直到商为0,每一步的余数作为二进制数的一位数字,最先获得的余数是二进制数的最低位,最后获得的是其最高位;小数部分的转换方法是连续乘以2直到满足误差要求,每一步取乘积的整数部分作为二进制数的一位数字,同样地,最先获得的整数部分是二进制数的最低位,最后获得的是其最高位。此说法对吗?(对/错)


    14.25

  • 第4题:

    将十进制数转换为二进制数,整数部分和小数部分需要分开进行。整数部分的转换方法是连续除以2直到商为0,每一步的余数作为二进制数的一位数字,最先获得的余数是二进制数的最低位,最后获得的是其最高位; 小数部分的转换方法是连续乘以2直到满足误差要求,每一步取乘积的整数部分作为二进制数的一位数字,同样地,最先获得的整数部分是二进制数的最低位,最后获得的是其最高位。此说法对吗?


    A

  • 第5题:

    下列说法哪些是正确的:

    A.网络程序与控制有关参数要转换成网络字节顺序

    B.Intel是低位先存

    C.TCP/IP的网络字节序是高位先存

    D.字节序是指数据的存储方式是先存低位还是先存高位

    E.计算机的字节序和使用的CPU有关


    A .网络空间不是法外之地,网络行为也要遵守规则,违法行为必须接受惩罚。;B .人际关系、社会矛盾在网络空间与现实空间是完全开放的,网上网下是相互影响的.;C .网络空间是由有形物质建立起来的,不能脱离现实社会独立存在。;D .网上行为往往需要在现实社会中实现,互联网只是用户的一种工具。