试编写完成程序,求数据区BUFF开始的100个带符号字节数据的和,结果存入SUM开始的存储单元。
试编写完成程序,求数据区BUFF开始的100个带符号字节数据的和,结果存入SUM开始的存储单元。
参考答案和解析
答:buff 定义如下: buff db 16 dup (?) ··· mov cx, 16 mov bx, offset buffnext2: sal ax, 1 jc set_1 mov BYTE ptr [bx],30h jmp next1set_1: mov BYTE ptr [bx], 31hnext1: inc bx loop next2
相关考题:
请编制程序,其功能是:内存中连续存放着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:FARN EQU 3STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTSOURCE 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,SOURCE ;数据区起始地址LEA SI,NANE0 ;原始数据文件名MOV CX,N*2 ;字节数CALL LOAD ;从'INPUT1.DAT'中读取数据; ********* BEGIN **********MOV DI,OFFSET RESULTMOV CX,NMOV BX,00PRO: MOV AX, (1)MOV DX,AXAND (2) ,DH(3) AH,ALMOV (4) ,DLADD BX,2(5)ADD DI,2(6)JNZ PRO; ******** END ********LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名NOV CX,N*2 ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START
请编制程序PROG1.ASM,其功能是:对内存中连续存放着20个补码表示的无符号整数进行从大到小的排序,结果存放在RESULT开始的内存单元中。部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文刊:OUTPUT1.DAT中。请在BEGIN和END之间补充一段源程序,完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。试题程序:EXTRN LOAD:FAR, SAVE:FARN EQU 20DSEG SEGMENTSOURCE DW N DUP(?) ; 存放原始数据RESULT DW N DUP(0) ; 存放运算结果NAME0 DB 'INPUT1.DAT',0NAME1 DB 'OUTPUT1.DAT',0DSEG ENDSSSEG SEGMENT STACKDB 128 DUP(?)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG, DS:DSEG, SS:SSEGSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DSEGMOV DS,AXMOV ES,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAMEO ; 原始数据文件名MOV CX.N ; 字节数CALL LOAD ; 从'INPUT1.DAT中读取数据';****BEGIN****………………;****END****LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N ; 结果字节数CALL SAVE ; 保存结果到文件RETSTART ENDPCSEG ENDSEND START
请编制程序PROG1.ASM,其功能是:将连续20个字节的ASCII码(30~39之间)顺序转换成10个压缩BCD码。例如:原始数据 31H,33H,35H,38H……(后面依次有16个ASCII码)转换后为 13H,58H,……(后面依次有8个压缩BCD码)部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果(要求从RESULT开始存入)由SAVE过程保存到OUTPUT. DAT中。请在BEGIN和END之间补充一段源程序,完成要求的功能。原有数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,结果要求从RESULT开始存放,由SAVE保存到OUTPUT1.DAT文件对程序必须进行汇编,并与IO.OBJ连接产生PROG1.EXE执行文件,最终产生运行结果(无结果或结果不正确均不得分)。部分程序如下:EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB 31H,32H,33H,34H,35H,36H,37H,38HRESULT DB 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,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N ; 字节数CALL LOAD ; 从 "INPUT1. DAT"中读取数据**** BEGIN ******** END ****LEA DX,RESULT ; 结果数据区首地址LEA SI, NAME1 ; 结果文件名MOV CX,N ; 结果字节数CALL SAVE ; 保存结果到文件RETSTART ENDPCODE ENDSEND START相关知识:●BCD码和压缩BCD码BCD码就是以二进制数表示十进制数,以4位二进制数表示1位十进制数,0000~1001表示0~9,1010~1111六个状态无意义。非压缩BCD码以一个字节表示一位BCD码,压缩BCD码一个字节表示两位BCD码。●ASCII码与压缩BCD码之间的转换0~9的ASCH码为30H~39H,从数字的ASCII码求数字本身,只要用他的ASCII码减去30H即可。由两位非压缩BCD码构成一个字节的压缩BCD码可将高位的BCD码移到高四位,然后与低位的BCD码进行逻辑或(OR)操作即可完成。编程思路:第一步:分析本程序要求完成的功能。本程序要求完成以下功能:(1)从数据文件INPUT1.DAT中读取20个字节的ASCII码存放在SOURCE开始的内存单元中。(2)将SOURCE开始的20个ASCII码求出其对应的数值,然后转换成压缩的BCD码,依次放在RESULT开始的内存单元中。(3)将处理之后的字符串存入到OUTPUT1.DAT。第二步:用相应汇编程序来实现其功能。(1)数据的读取和存入题目中已经给出,只要完成20个ASCII码到压缩BCD的转换即可。(2)由ASCII码到压缩BCD码的转换过程如下:由于20位ASCII码正好转换成10个字节压缩BCD码,不存在某个字节的BCD码只有一位。因此依次从SOURCE开始的内存单元取两个ASCII码,前一个转换成压缩BCD码的高位,后一个转换成压缩BCD码的低位来构成压缩BCD码;每两个ASCII码转换成一个字节的压缩BCD码,直至转换完毕。
8086CPU的控制线/BHE=0,地址线A0=0时,CPU()。A、从偶地址开始完成8位数据传送B、从偶地址开始完成16位数据传送C、从奇地址开始完成8位数据传送D、从奇地址开始完成16位数据传送
在数据库管理系统的三级封锁协议中,二级封锁协议的加锁要求是()。A、对读数据不加锁,对写数据在事务开始时加X锁,事务完成后释放X锁B、读数据时加S锁,读完即释放S锁;写数据时加X锁,写完即释放X锁C、读数据时加S锁,读完即释放S锁;对写数据是在事务开始时加X锁,事务完成后释放X锁D、在事务开始时即对要读、写的数据加锁,等事务结束后再释放全部锁
单选题可编程序控制器的CPU模块可完成下述各项工作()。 ①根据数据处理的结果,刷新输出状态表; ②用扫描方式接收源自被控对象的状态信号,并存入相应的数据区; ③用户程序的语法自动纠错; ④系统状态及电源系统的监测; ⑤用打印方式接收源自被控对象的状态信号,并存入相应的数据区; ⑥执行用户程序。A①②③⑤B①②④⑥C①②④⑤D②③④⑥
单选题8086CPU的控制线/BHE=0,地址线A0=0时,CPU()。A从偶地址开始完成8位数据传送B从偶地址开始完成16位数据传送C从奇地址开始完成8位数据传送D从奇地址开始完成16位数据传送
问答题在内部RAM的BLOCK开始的单元中有一无符号数据块,数据长度为LEN。试编程求其中最大的数并存入MAX中。