问题 填空题

下面的8086/8088汇编语言程序中,主程序通过堆栈将有关信息传送给子程序STRLEN。在主程序的______处填空,使程序能正常运行。DSEGSEGMENTARRAYDB ’Computer$’NUM DW 0DSEGENDSSSEGSEGMENTSTACK DB 256 DUP (0)SSEGENDSCSEG1 SEGMENT ASSUME DS: DSEG, SS: SSEG, CS: CSEG1START: MOV AX, DSEG MOV DS, AX MOV AX, OFFSET ARRAY PUSH AX CALL MOV NUM, AX MOV AH, 4CH INT 21HCSEG1 ENDSCSEG2 SEGMENT ASSUME DS: DSEG, SS: SSEG, CS: CSEG2STRLEN PROC FAR PUSH BP MOV BP, SP PUSH SI MOV SI,[BP+6]NEXT: CMP BYTE PTR [SI],’$’ JZDONE ;串尾吗 INC SI JMP NEXTDONE: MOV AX, SI SUB AX, [BP+6] POP SI POP BP RET 2STRLEN ENDPCSEG2 ENDS ENDSTART

答案

参考答案:FAR PTR STRLEN

解析: 该题考查考生对宏汇编指令的掌握。从本程序的功能要求“主程序通过堆栈特有关信息传送给子程序 STRLEN”,可以看出,需要用CALL指令调用一个子程序,从程序中还可以看出,调用位置和子程序位置位于不同的代码段中,CALL指令的段间直接调用格式为CALL FAR PTR DST,其中DST为子程序的入口地址,所以本题答案应该是FAR PTR STRLEN。

单项选择题
多项选择题