注册 登录
编程论坛 汇编论坛

请教几道简单的汇编题 麻烦给出程序

zfly 发布于 2006-04-26 12:50, 827 次点击

1. 内存中有一组数据,将其奇数、偶数分开两组存放。试写出程序。

2. 有10个有符号整数,每个数长度是16bit,存放在数据段中。编写一个完整的程序,将该10个数字做累加运算,并将计算结果存入sum单元;同时计算出将该10个数中的最大数,并将计算结果存入max单元;计算中如发现有溢出情况,转向程序结束处理。

3. 内存中有一组有符号数,将其按升序排序。

麻烦给出程序好吗?多谢啦!!!

3 回复
#2
lj_8606032006-04-26 20:14
这都是涉及到循环的问题,不难解决.我给出核心思路吧.
=========================
1.求出数据除以2的余数:
LOP:MOV BL,2    ;2是余数,把2存进BL里面
  DIV BL     ;内存的数据除以2
  MOV [DI],AH  ;把余数(在AH中)装进数据段DI里面
CMP [DI],1 ;余数和1比较
MOV 数据段1,数据 ;把这个数据放到定义好的数据段1里
CMP [DI],0 ;余数不等于1和话和0比较
MOV 数据段 2,数据 ;把这个数据放到数据段2里面
  LOOP LOP    ;循环直到数据送完
#3
lj_8606032006-04-26 20:20
2. XOR MAX,MAX ;清0
MOV MAX,[DI]   ;把第一个数假定最大值
XOR SUM,SUM  ;清0
LOP: ADD SUM,[DI]    ;逐个累加
CMP [DI],MAX    ;和最大值比较
JG NEXT      ;大于的话转到NEXT
NEXT:MOV MAX,[DI]    ;把新的最大值给MAX
INC DI       ;指针加1,指向下一个
LOOP LOP      ;循环直到数据送完
#4
lj_8606032006-04-26 20:21
3.和第二题思路差不多,我在这就不多说了.
  希望楼主好好努力,多问多想多动手实践
1