试编写完成程序,求数据区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

两单字节带符号数用IMUL相乘,结果为:() A、单字节带符号数B、双字节无符号数C、双字节带符号数

请编制程序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码,直至转换完毕。

一个标明为70ns的内存芯片要用70ns才能读或写该存储单元一个字节的数据。 A.错误B.正确

8086宏汇编源程序中,若BUFF是字变量名,则执行指令MOV BX,BUFF后,BX中的值为BUFF单元的()。A、字数据值B、变量类型值C、段基址D、段内偏移量

在外部RAM中BLOCK开始的单元中有一数据块,数据长度为LEN,试编程统计其中的正数、负数和零的个数分别存入内部RAM的Pcount、Mcoun和Zcount单元。

8086CPU的控制线/BHE=0,地址线A0=0时,CPU()。A、从偶地址开始完成8位数据传送B、从偶地址开始完成16位数据传送C、从奇地址开始完成8位数据传送D、从奇地址开始完成16位数据传送

在Excel中,对数据求和的函数是Sum(),对数据求平均的函数是averuge()。()

不使用立即数,也不用任何存储单元中的数据,写一段程序(限六条指令之内),完成如下操作:-1→AX,0→BX,1→CX。

在内部RAM的BLOCK开始的单元中有一无符号数据块,数据长度为LEN。试编程求其中最大的数并存入MAX中。

试编写一程序,将外部数据区DATA1单元开始的50个单节数逐一依次移动到内部RAM中DATA2单元开始的数据区中。

试编写程序,将内部RAM单元中DATA1开始的20个单字节数依次与DATA2单元为起始地址的20个单字节数据进行交换。

在Excel2003中,求A2到A6区域数据的和,可在A7单元格中键入()A、=SUM(A2,A6)B、=SUM(A2:A6)C、SUM(A2:A6)D、SUM(A2,A6)

数组LIST2内存有20个压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM2双字单元。

数组LIST1内存有20个非压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(非压缩BCD码)存入SUM1双字单元。

在数据库管理系统的三级封锁协议中,二级封锁协议的加锁要求是()。A、对读数据不加锁,对写数据在事务开始时加X锁,事务完成后释放X锁B、读数据时加S锁,读完即释放S锁;写数据时加X锁,写完即释放X锁C、读数据时加S锁,读完即释放S锁;对写数据是在事务开始时加X锁,事务完成后释放X锁D、在事务开始时即对要读、写的数据加锁,等事务结束后再释放全部锁

一个标明为70ns的内存芯片要用70ns才能读或写该存储单元一个字节的数据。

问答题数组LIST3内存有20个压缩BCD码表示的双字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM3双字单元。

问答题在外部RAM中BLOCK开始的单元中有一数据块,数据长度为LEN,试编程统计其中的正数、负数和零的个数分别存入内部RAM的Pcount、Mcoun和Zcount单元。

问答题数组LIST1内存有20个非压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(非压缩BCD码)存入SUM1双字单元。

问答题试编写一程序,将外部数据区DATA1单元开始的50个单节数逐一依次移动到内部RAM中DATA2单元开始的数据区中。

单选题字节块传送指令一次可以把从输入字节IN开始N个个字节组成的数据块传送到从OUT开始的N个字节存储单元中,N最多为()个。A8B255C32D16

单选题可编程序控制器的CPU模块可完成下述各项工作()。 ①根据数据处理的结果,刷新输出状态表; ②用扫描方式接收源自被控对象的状态信号,并存入相应的数据区; ③用户程序的语法自动纠错; ④系统状态及电源系统的监测; ⑤用打印方式接收源自被控对象的状态信号,并存入相应的数据区; ⑥执行用户程序。A①②③⑤B①②④⑥C①②④⑤D②③④⑥

单选题8086CPU的控制线/BHE=0,地址线A0=0时,CPU()。A从偶地址开始完成8位数据传送B从偶地址开始完成16位数据传送C从奇地址开始完成8位数据传送D从奇地址开始完成16位数据传送

问答题试编写程序,将内部RAM单元中DATA1开始的20个单字节数依次与DATA2单元为起始地址的20个单字节数据进行交换。

问答题在内部RAM的BLOCK开始的单元中有一无符号数据块,数据长度为LEN。试编程求其中最大的数并存入MAX中。