考题
请编制程序,其功能是:内存中有一个由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个字节