请问这一段汇编程序是什么意思?并回答程序后的问题.
DATASEGMENTSTRDB“abcdef123456”,-1LENDW?DATAENDSSTAKSEGMENTDB128DUP(?)STAKENDSCODESEGM...
DATA SEGMENT
STR DB “abcdef123456”,-1
LEN DW ?
DATA ENDS
STAK SEGMENT
DB 128 DUP(?)
STAK ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA, SS:STAK
START:
MOV AX, DATA
MOV DS, AX
MOV AX, STAK
MOV SS, AX
LEA SI, STR
CALL SCONT
MOV LEN, BX
MOV AH, 4CH
INT 21H
SCONT PROC NEAR
PUSH SI
XOR BX, BX
MOV SI, BX
NEXT:
CMP BYTE PTR[SI],-1
JZ OVER
INC BX
INC SI
JMP NEXT
OVER:
POP SI
RET
SCONT ENDP
CODE ENDS
END START
1、 请试着改变字符串“abcdef123456”(注意不要改变该字符串后的-1),结合存储器中数据段LEN值的变化,分析此程序主要功能是什么?
2、 本程序中的一个子程序是用来实现什么功能的?请画出调用此子程序前后堆栈段的数据变化情况。(请注意此子程序是段内调用!)
3、请试着将该程序中的子程序调用改成段间调用。并画出段间调用子程序前后的堆栈段的数据变化情况。
czj780312的回答不错哇..
desger的显得稍微简略,但还是不错..
要是我现在选答案的话我会选czj780312..但我还想等多几天~就几天就好.谢谢大家的支持.. 展开
STR DB “abcdef123456”,-1
LEN DW ?
DATA ENDS
STAK SEGMENT
DB 128 DUP(?)
STAK ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA, SS:STAK
START:
MOV AX, DATA
MOV DS, AX
MOV AX, STAK
MOV SS, AX
LEA SI, STR
CALL SCONT
MOV LEN, BX
MOV AH, 4CH
INT 21H
SCONT PROC NEAR
PUSH SI
XOR BX, BX
MOV SI, BX
NEXT:
CMP BYTE PTR[SI],-1
JZ OVER
INC BX
INC SI
JMP NEXT
OVER:
POP SI
RET
SCONT ENDP
CODE ENDS
END START
1、 请试着改变字符串“abcdef123456”(注意不要改变该字符串后的-1),结合存储器中数据段LEN值的变化,分析此程序主要功能是什么?
2、 本程序中的一个子程序是用来实现什么功能的?请画出调用此子程序前后堆栈段的数据变化情况。(请注意此子程序是段内调用!)
3、请试着将该程序中的子程序调用改成段间调用。并画出段间调用子程序前后的堆栈段的数据变化情况。
czj780312的回答不错哇..
desger的显得稍微简略,但还是不错..
要是我现在选答案的话我会选czj780312..但我还想等多几天~就几天就好.谢谢大家的支持.. 展开
9个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询