다양한 MIPS 예제 프로그램을 사용할 수 있습니다. 첫 번째 프로그램인 example1.asm으로 시작하여 컴퓨터에 다운로드합니다. 로드 명령의 컴퓨터 코드의 예는 다음과 같습니다: 코드 실행을 시작하지 않았기 때문에 스택이 여전히 비어 있습니다. 레지스터 패널(아래 표시)에는 모든 MIPS 레지스터의 내용이 표시됩니다. 이 패널에는 부동 점 레지스터용 탭과 정수 레지스터용 탭이 두 개 있습니다. 정수 레지스터에는 범용 레지스터(R1-R31)와 프로그램 카운터(PC)와 같은 특수 목적 레지스터가 포함됩니다. 1. 값이 메모리에서 교환된 후 7(0x10010008)의 새 위치 바로 다음에 메모리 위치에 어떤 값이 있습니까? 2. 프로그램이 로드된 후 명령 창에 나열된 첫 번째 명령은 무엇입니까? (힌트 : 그것은 코멘트 „# ARGC”를 포함) 3.

커널 코드의 첫 번째 명령의 전체 텍스트는 무엇입니까 (힌트 : 그것은 `addu`명령입니다) 이제 프로그램이로드되었으므로 어셈블리 명령의 시뮬레이션을 실행할 수 있습니다. 세 가지 선택 사항이 있습니다: 텍스트 창에서 아래로 스크롤하여 어셈블리 코드가 프로그램 메모리 공간에 로드되었는지 확인할 수 있습니다. 이 경우 첫 번째 명령은 메모리 위치 0x00400024에 있습니다. (메모리 주소 0에서 시작되지 않는 이유는 무엇입니까? 프로그램은 함수 main()로 시작하지만 main 앞에 실행되는 코드가 있습니다. 따라서 컴퓨터 코드는 1000 1110 0001 0001 0000 0000 0000 또는 0x8e11000입니다. 나는 당신의 게시물을 발견 하게 되어 기쁩니다. 시뮬레이터에 대한 시작 가이드에 필요한 정보의 종류입니다. 다시 한번 감사드립니다! 이단은 을 사용하여 코드를 통과합니다.

첫 번째 단계 후, 왼쪽 창에서 레지스터 16(s0)을 관찰한다. 0x10010000이 되었습니다. 전체 프로그램을 단계별로 살펴보고, 프로그램이 수행하는 작업을 파악하고, QtSPIM 환경의 작동 방식을 이해해야 합니다. 프로그램이 로드되면 프로그램 실행을 단계별로 진행합니다. 을 사용하여 코드를 단계별로 진행하거나 QtSpim 창 상단의 단일 단계 버튼을 누릅니다. 시뮬레이터 초기화를 통해 코드의 첫 번째 줄의 메모리 주소인 0x00400024까지 계속 단계별로 코드가 실행중이기 때문에 스택이 변경되었음을 설명합니다. 그것은 낮은 주소를 향해, 위쪽으로 성장한다. 건설적인 의견을 환영합니다! 스팸, 또는 욕설이나 비속어는 삭제됩니다. 조립 프로그래밍을 배우기 위해 MIPS 시뮬레이터인 SPIM을 사용할 예정입니다.

SPIM의 현재 버전은 „QtSPIM”, Qt 크로스 플랫폼 응용 프로그램 GUI 프레임 워크를 사용 하 여 일명 SPIM: Qt GUI 프레임 워크를 사용 하는 리눅스에 대 한 SPIM의 사전 패키지 된 버전을 다운로드: (이전 32 비트 리눅스 설치를 실행 하는 경우, 변경 64 받는 것 32 아래) QtSPIM을 실행한 후 아래와 같이 기본 창이 나타납니다.

2010 © Copyright Fundacja Projekt Kultura