网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

请编制程序PROG1.ASM,其功能是:以逻辑尺L变量对内存中连续存放着16个字的数进行去高字节操作:当L的i位为1则将第i数据的高字节置为全0,当L的i位为0则第i数据不变。将处理的结果存入RESULT指示的内存区。

例如:

设L=0005H

源数:1111H,2222H,3333H,4444H,5555H,6666H…

结果:0011H,2222H,0033H,4444H,5555H,6666H…

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

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

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

PROG1.ASM文件内容如下:

EXTRN LOAD:FAR,SAVE:FAR

N EQU 16

STAC SEGMENT STACK

DB 128 DUP(?)

STAC ENDS

DATA SEGMENT

L DW ?

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

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

MOV CX,2*(N+1) ;字节数

CALL LOAD ;从input1.dat文件中读取数据

;* * * * BECIN * * * *

LEA SI,SOURCE

_______

MOV CX,N

MOV DX,_____

LO: MOV AX,[SI]

_____ L,DX

_____ STORE

NOT AX

STORE: MOV [DI],AX

ADD DI,2

ADD SI,2

LOOP LO

;* * * * END * * * *

LEA DX,RES


参考答案

更多 “ 请编制程序PROG1.ASM,其功能是:以逻辑尺L变量对内存中连续存放着16个字的数进行去高字节操作:当L的i位为1则将第i数据的高字节置为全0,当L的i位为0则第i数据不变。将处理的结果存入RESULT指示的内存区。例如:设L=0005H源数:1111H,2222H,3333H,4444H,5555H,6666H…结果:0011H,2222H,0033H,4444H,5555H,6666H…部分程序已经给出,其中原始数据由过程LOAD从文件INPUTl.DAT中读入SOURCE开始的内存元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令也可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。PROG1.ASM文件内容如下:EXTRN LOAD:FAR,SAVE:FARN EQU 16STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTL DW ?SOURCE DW N DUP(?)RESULT DW N 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,AXLEA DX,L ;数据区起始地址LEA SI,NAMEO ;原始数据文件名MOV CX,2*(N+1) ;字节数CALL LOAD ;从input1.dat文件中读取数据;* * * * BECIN * * * *LEA SI,SOURCE_______MOV CX,NMOV DX,_____LO: MOV AX,[SI]_____ L,DX_____ STORENOT AXSTORE: MOV [DI],AXADD DI,2ADD SI,2LOOP LO;* * * * END * * * *LEA DX,RES ” 相关考题
考题 请编制程序,其功能是:内存中有一个由16个十六位二进制数组成的数组(SOURCE)和一个字变量L。试将L作为逻辑尺对数组SOURCE进行下列处理:如L的第i位为0,则数组的第i个数不变:如L的第i位为1,则数纽的第i个数按位取反。字L的位序从低到高依次为0至15,数组下标依次从0到15。例如:L=0009H数组为:139CH,89C6H,5437H,8819H,…变换为:EC63H,89C6H,5437H,77E6H,…部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入(L在前,SOURCE在后)。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。[试题程序]EXTRN LOAD:FAR,SAVE:FARN EQU 16STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTL DW ?SOURCE DW N DUP(?)RESULT DW N 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,L ;数据区起始地址LEA SI,NANE0 ;原女合数据文件名MOV CX,2*(N+1) ;字节数CALL LOAD ;从'INPUT.DAT'中读取数据; ******** BEGIN ************LEA SI, SOURCE(1)MOV CX,NMOV DX, (2)L0: MOV AX, [SI](3) L,DX(4) STORENOT AXSTORE:MOV [DI],AXADD DI,2ADD SI,2(5)LOOP L0; ******** END ********LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,2*N ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START

考题 下面程序的功能是利用逻辑尺对BUF变量中的数据进行变换,执行该程序后,以RESULT为首地址的前两个字节单元中的数据依次为【 】。DSEG SEGMENTBUF DB 1,5,4,0,7,9,2,6L EQU 00111001B ;用做逻辑尺RESULT DB 10 DUP(?)DSEG ENDSSSEG SEGMENT STACKDB 256 DUP(0)SSEG ENDSCSEG SEGMENTASSUME DS:DSEG,SS:SSEG,CS:CSEGSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DSEGMOV DS,AXMOV SI,0MOV CX,8MOV DL,LGOON: SHR DL,1JC FILLMOV AL,BUF[SI]JMP NEXTFILL: MOV AL,OFFHNEXT: MOV RESULT[SI],ALINC SILOOP GOONRETSTART ENDPCSEG ENDSEND START

考题 请编制程序,其功能是:内存中连续存放着16个12位无符号二进制数DB11DB10…DB0,其存放格式均为DB11 DB10 DB9 DB8 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0请判别这16个12位二进制数是否大于800H:若大于800H,则相应地在内存中存入01H;否则,存入00H。最后存放这16个12位二进制数中大于800H的数的个数n(n用一个字节表示)。例如:内存中有12H,30H,84H,50H,80H,00H…结果为 00H,01H,00H…(共16个字节),后跟n部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:

考题 请编制程序,其功能是:内存中连续存放着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: &

考题 下面程序的功能是利用逻辑尺对BUF变量中的数据进行变换,执行该程序后,以RESULT为首地址的前2个字节单元中的数据,依次为______。DSEG SEGMENTBUF DB 1, 5, 4, 0, 7, 9, 2, 6L EQU 00111001B ; 用作逻辑尺RESULT DB 10 DUP(?)DSEG ENDSSSEG SEGMENT STACKDB 256 DUP(0)SSEG ENDSCSEG SEGMENTASSUME DS:DSEG, SS:SSEG, CS:CSEGSTART PROC FARPUSH DSXOR AX, AXPUSH AXMOV AX, DSEGMOV DS, AXMOV SI, 0MOV CX, 8MOV DL, LGOON: SHR DL, 1JC FILLMOV AL, BUF[SI]JMP NEXTFILL: MOV AL, OFFHNEXT: MOV RESULT [SI] , ALINC SILOOP GOONRETSTART ENDPCSEG ENDSEND START

考题 请编制程序,其功能是:内存中连续存放着20个无符号字节数序列,请将它们排成升序(从小到大)。例如:内存中有01H,04H,02H…(假设后17个字节均大与04H)结果为 01H,02H,04H…(后跟17个字节,按从小到大的顺序排列)部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并白行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:

考题 程序中定义的一个字符型变量在内存中占用___ 个字节。

考题 HEHE DW 100, 200;变量HEHE占用了()个字节内存A.4B.8C.16D.2

考题 若有定义语句 char c = '101'; 则变量c在内存中占()A.1个字节B.2个字节C.3个字节D.4个字节