이 섹션에서는 완전히 혼란 스럽습니다. 나는 다른 문제에 적용하는 방법을 흡수 할 수 있도록 누군가가 나를 위해 단계로 나눌 수 있기를 바라고있는 모범 문제가있다.어셈블리 언어 서브 루틴
mc: call subr
mr: mov [val],ax
subr: push ax
push bx
push cx
add ax,dx
pop ax
pop bx
pop cx
ret
이 책은 SP와 도끼 레지스터의 16 진수 값이 코드는 서브 루틴에서 반환하고 명령 mr: mov [val],ax
에 도달 할 때이 될 것입니다 무엇을 요구합니다. sp=0100 ax=0002
,하지만 나는이 답을 얻는 방법에 대한 단서가 없습니다.
명령어 mc: call subr
은 스택에 다음 순차 명령어 mr: mov [val],ax
의 주소를 저장하므로 서브 루틴이 올바르게 반환 될 수 있습니다. 복귀 주소가 저장된 메모리의 절대 주소는 1120E
입니다. 아무도 이것을 정교하게 부탁 할 수 있습니까? subr:
반환, 제어 mr:
다시 시작합니다 그래서
registers given:
ax = 0000 bx = 0001 cx = 0002 dx = 0004
si = 0000 di = FFFF bp = 0080 sp = 0100
cs = 1000 ds = 1100 es = 1110 ss = 1111
여기에 표시되는 어셈블리 언어 유형은 무엇입니까? –