问答题
试编写一个工作在16位空间的486段内调用子程序,完成找出有符号字数组中最大数的操作。要求:
(1)子程序入口地址(标号):MAX;
(2)入口参数:SI=字数组首地址(位于数据段中);
CX=字数组元素个数;
(3)出口参数:AX=最大数;
【正确答案】MAX:PUSHF ;保护F、CX、SI
PUSH CX
PUSH SI
MOV AX,[S1] ;取一假想最大数到AX中
hrEXT. CMP AX,[SI] ;AX与其他数Xi比较
JGE PASS ;若AX≥Xi转PASS
MOV AX,[SI] ;更新AX中的假想最大数
FASS: ADD SI,2 ;调整指针
LOOP NEXT ;CX←CX-1,若CX≠0转NEXT
POP SI ;恢复SI、CX、F
POP CX
POPF
RET ;返回
【答案解析】