2016-07-26 5 views
0

ALP를 처음 사용하기 때문에이 어셈블리 언어 프로그램에 대한 도움이 필요합니다. 여기에 문제가 있습니다 : 메인 문자열에 부분 문자열을 삽입하는 어셈블리 언어 프로그램을 작성하십시오. tasm을 사용하고 있습니다 (도움이 될지 확실하지 않습니다). 시도했습니다. 하지만 errors이 나옵니다.주 문자열에 하위 문자열을 삽입하는 tasm 프로그램

+0

Stackoverflow에 오신 것을 환영합니다! 제발, 당신의 프로그램의 소스 코드를 붙여 넣으십시오. 그러면 이미지가 더 편리해질 것입니다. 또한 제공된 이미지에 오류가 아닌 소스 코드가 들어 있습니다. – kelin

+0

'msg1'의 내용을 가져 와서'msg2'와 같이 배치 할 수 없습니다. 'msg2'에서 공간을 예약하고 런타임에 문자열을 복사하거나,'EQU' 또는 어셈블러가 지원하는 지시어를 사용하여'msg1'을 _equate_로 만들 수 있습니다. – Michael

+0

코드에서 어딘가에 주소를 가져 가야하는 경우'msg1'을 같게 만들 수는 없습니다. – Michael

답변

0

해당 png에 (직접 보이는) 오류가 표시되지 않습니다.

"main에 하위 문자열 삽입"을하지 않았 으면 코드에 msg2 문자열 만 표시 할 수 있습니다.

나는 제대로 실행되지 않아 코드 실행 후 메모리의 (정의되지 않은) 내용이 실행되어 아마 모든 종류의 이상한 동작을 일으키기 때문에 실행하지 못할 것입니다.

그래서 지금 :

  1. 는 (그것의 "종료 프로그램"함수를 호출하는 방법을 DOS int 21h, 대한 설명서를 참조하십시오) 출구 INT 21H 서비스 호출을 추가합니다. (그 후, 컴파일하고 실행하여 정말로 msg2 메모리의 문자열을 올바르게 표시하는지 확인할 수 있습니다).

  2. 문자열이 메모리에 저장되는 방법을 깨닫고, 그들은 가상의 물건이 아니며, 컴퓨터는 숫자 만 처리 할 수 ​​있으므로 어떻게 든 이것을 준수해야합니다. 그런 다음 최종 수정 문자열을 저장할 정도로 오래 버퍼를 준비하십시오.

  3. 프로그램의 입력 무엇을 정의합니다 (삽입 할 메인 캐릭터와 서브 캐릭터, 어떻게 당신은 그것을 삽입됩니다 위치를 정의 함)

  4. 코드를 작성, 주요 문자열로 문자열을 삽입하는 큰를 사용하여

) 최종 문자열 당신이 출력을

  • 종료를 보여 지금이 표시

  • 재사용을 쓰기 버퍼3210