案例分析题
第30小题,15分。请将答案写在答题纸指定位置上。
1998年6月17日晚12时30分左右,武强县北代乡葛沙洼村葛存彪(别名三彪)同本村朱大娃酒后到本村吴建群小卖部,砸门踹墙将吴建群叫起,葛,朱二人要了一瓶白酒和一袋炸虾,在吴建群家喝起酒来。在喝酒过程中,葛存彪要强买吴的摩托车,吴未答应,葛存彪即上前打了吴几巴掌。接着,葛又用手将柜台玻璃砸坏,并拿起盘子向吴投去,将吴的头部打破。葛又抄起一瓶啤酒向吴砸去,被同去的朱大娃拦住,啤酒摔了一地。此时,吴的妻子杨某出来劝阻,葛不但不听,反而对杨某非礼。当杨某躲入里屋后,葛即追至里屋,在杨某身上乱摸,吴见状上前阻拦并将葛拽开时,葛撞到墙上,恼羞成怒,随手拿起一把剪刀,扎伤吴的腿部,吴跑出院外,葛拿着剪刀追上,并说“今天我给你放了血”。葛,吴二人在门外打在一起,吴为抢夺葛的剪刀,用尽全身力气,与葛滚打到院外台子下,吴的左手无名指,小拇指及右手掌多处被剪刀所伤,后终将剪刀夺下,吴在葛存彪身上乱扎数刀,后吴建群于18日凌晨3时12分向公安局通过电话报案自首。审讯中,吴建群对所犯事实全部供认。
问题:对吴建群的行为应如何处理?
请编制程序,其功能是:将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域。存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。
例如:
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已经给出的一段原程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
N EQU 40
STAC SEGMENT STACK
DB 128 DUP ()
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(0)
RESULT DB N+2 DUP(0)
NAME0 DB 'INPUT1.DAT',0
NAME1 DB 'OUTPUT1.DAT',0
NDATA DB N DUP(0)
PDATA DB N DUP(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
MOV ES,AX ;置附加段寄存器
LEA DX,SOURCE ;数据区起始地址
LEA SI,NANE0 ;原始数据文件名
MOV CX,N ;字节数
CALL LOAD ;从'INPUT1.DAT'中读取数据
**********BEGIN**********
LEA SI,RESULT
(1) DI,OFFSET PDATA ;PDATA为正数数组存放缓冲区首址
NOV BX,OFFSET NDATA ;NDATA为负数数组存放缓冲区首址
XOR DX,DX
MOV CX,N
CLD
MAIN1: LODSB
TEST AL, (2)
Z MAIN2
NC DH
OV [BX],AL
NC BX
(3)
MAIN2: INC DL
OV [DI],AL
NC DI
NAIN3: (4) NAIN1
EA SI,PDATA
A DI,RESULT
OV [DI],DL
NC&nb