아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

올곧은애벌래221
올곧은애벌래221

어셈블리어 스택구조 질문입니다.

어셈블리에서 스택에 자료를 넣는것은 push 빼는것은 pop이라고 배웠는데 push를 할때 sp(스택포인터)를 임의로 조작하여 자리를 확보하고 자료를 넣는 경우와 그냥 push만 사용해서 자료를 넣는거에대한 차이를 정확히 모르겠습니다.

예를 들어

addi sp, sp, -8

sw t0, 0(sp)

sw t1, 4(sp)

이런 경우와 단순하게

sw t1, 0(t3)

이렇게만 쓰는것의 차이점을 알려주세요

    55글자 더 채워주세요.
    2개의 답변이 있어요!
    • 총명한퓨마17
      총명한퓨마17

      MIPS에서 sw instruction은 register에 있는 내용을 memory에 저장하는 명령어입니다.

      자료구조를 배우셨다면, push, pop은 데이터의 저장과 stack pointer의 변경이 모두 있어야 합니다.

      그래야 나중에 stack pointer가 가리키는 가장 마지막 data를 꺼내 오거나, 추가로 data를 저장(push)할 수 있습니다.

      즉, 아래의 내용은 데이터의 저장만 있을 뿐 나중에 그 data를 사용하려면 저장된 위치를 내가 알고 있어야겠지요.

      push/pop의 의미와 용도를 생각해보시기 바랍니다.

    • 안녕하세요.

      프로그래밍은 원래 혼자서 독학해야 하는 직종입니다. 대부분의 모르는 것들은 구글에 검색하면 다 나옵니다. 혼자서 독학하기에 좋은 프로그래밍 인강 사이트는 유료로 한다면 인프런 이라는 사이트가 있고 일단 맛보기라도 먼저 해보고 싶으시다면 생활코딩이라는 사이트를 접속하셔서 한 번 영상 훑어보시는 것도 좋습니다.

      시작하기 좋은 프로그래밍언어는 nodejs 혹은 javascript, python 등이 있습니다. 만약 앱개발을 원하신다면 무조건 자바를 하셔야 합니다. 안드로이드가 자바기반으로 되어 있으며 코틀린 언어를 사용하셔도 됩니다.

      현업에서는 C언어를 거의 사용하지 않습니다. 파이썬을 사용하는 부서는 있으며 주로 자바나 자바스크립트 nodejs 를 사용하는 부서가 가장 많습니다.

      그 외의 프로그래밍이라면 html, css, javascript 등과 같은 것은 https://w3schools.com 에서도 충분히 학습하실 수 있습니다.