下面的8086/8088汇编语言程序中,主程序通过堆栈将有关信息传送给子程序STRLEN。在主程序的______处填空,使程序能正常运行。 DSEG SEGMENT ARRAY DB ’Computer$’

admin2010-11-09  79

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

选项

答案FAR PTR STRLEN

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

最新回复(0)