ALP를 처음 사용하기 때문에이 어셈블리 언어 프로그램에 대한 도움이 필요합니다. 여기에 문제가 있습니다 : 메인 문자열에 부분 문자열을 삽입하는 어셈블리 언어 프로그램을 작성하십시오. tasm을 사용하고 있습니다 (도움이 될지 확실하지 않습니다). 시도했습니다. 하지만 errors이 나옵니다.주 문자열에 하위 문자열을 삽입하는 tasm 프로그램
0
A
답변
0
해당 png에 (직접 보이는) 오류가 표시되지 않습니다.
"main에 하위 문자열 삽입"을하지 않았 으면 코드에 msg2 문자열 만 표시 할 수 있습니다.
나는 제대로 실행되지 않아 코드 실행 후 메모리의 (정의되지 않은) 내용이 실행되어 아마 모든 종류의 이상한 동작을 일으키기 때문에 실행하지 못할 것입니다.
그래서 지금 :
는 (그것의 "종료 프로그램"함수를 호출하는 방법을 DOS
int 21h
, 대한 설명서를 참조하십시오) 출구 INT 21H 서비스 호출을 추가합니다. (그 후, 컴파일하고 실행하여 정말로 msg2 메모리의 문자열을 올바르게 표시하는지 확인할 수 있습니다).문자열이 메모리에 저장되는 방법을 깨닫고, 그들은 가상의 물건이 아니며, 컴퓨터는 숫자 만 처리 할 수 있으므로 어떻게 든 이것을 준수해야합니다. 그런 다음 최종 수정 문자열을 저장할 정도로 오래 버퍼를 준비하십시오.
프로그램의 입력 무엇을 정의합니다 (삽입 할 메인 캐릭터와 서브 캐릭터, 어떻게 당신은 그것을 삽입됩니다 위치를 정의 함)
코드를 작성, 주요 문자열로 문자열을 삽입하는 큰를 사용하여
종료를 보여 지금이 표시
재사용을 쓰기 버퍼3210
Stackoverflow에 오신 것을 환영합니다! 제발, 당신의 프로그램의 소스 코드를 붙여 넣으십시오. 그러면 이미지가 더 편리해질 것입니다. 또한 제공된 이미지에 오류가 아닌 소스 코드가 들어 있습니다. – kelin
'msg1'의 내용을 가져 와서'msg2'와 같이 배치 할 수 없습니다. 'msg2'에서 공간을 예약하고 런타임에 문자열을 복사하거나,'EQU' 또는 어셈블러가 지원하는 지시어를 사용하여'msg1'을 _equate_로 만들 수 있습니다. – Michael
코드에서 어딘가에 주소를 가져 가야하는 경우'msg1'을 같게 만들 수는 없습니다. – Michael