첫 프로그래밍 언어로서의 어셈블리? [닫은]


12

사람들에게 어셈블리 (일부 변형)를 첫 번째 프로그래밍 언어로 가르치는 것이 얼마나 좋은 생각이라고 생각하십니까? 예를 들어 Java 또는 Python을 배우는 것보다 훨씬 많은 노력이 필요하지만 "최소한의 고급 언어와 비교하여"최소한의 고급 언어와 비교하여 기계를 잘 이해해야합니다. 어떻게 생각해? 적어도 추가 노력을 기울일 준비가 된 사람들에게는 현실적인 아이디어입니까? 장점과 단점?

참고 : 저는 선생님이 아니에요


5
소프트웨어 공학 / 개발이 아닌 컴퓨터 과학을 공부하는 사람들에게 더 적합하다고 생각합니다.
Imran Omar Bukhsh

1
@Imran 저는 교장에 동의하지만 제가 생각할 수있는 모든 대학 수준의 프로그램은 컴퓨터 공학 학위를 소지하고 있으며 대부분 소프트웨어 공학 분야에서 일하는 사람들이 이수합니다. (이 질문은 고등학교 설문 조사 과정이 아닌 프로그래밍 경력의 진지한 기초에 관한 것이라고 가정합니다)
G__

7
@Imran-나는 조금 놀라운 것을 발견했다. 컴퓨터 과학은 확실히 수학과 이론에 더 기울고 있습니까? 비트-블라드에서 블라-투-블라의 끝없는 반복을 쓰는 것보다 세트, 추상 대수 및 점근 적 표기법에 더 관심이 있습니다.
Steve314

2
컴퓨터 과학은 확실히 추상적 인 주제를 가지고 있지만, 어떤면에서는 매우 "하드웨어와 가깝습니다". 한때 컴퓨터 과학 컨퍼런스 인 LICS에 참석했습니다. 나는 다양한 정렬 알고리즘의 데이터 지역성에 관한 논문을 가지고 있다는 것을 기억한다. 나는 개인적으로 그것을 발견, 조립에 관한 것은 (... 튜링 기계, 카운터 기계) 이론적 계산 모델에 몇 가지 유사점이있다

1
모든 프로그래머는 최소한 어셈블리 작동 방식에 대해 읽어야합니다 (IMO). 그것은 나에게 많은 통찰력을 주었고 나는 일반적으로 얻을 수있는 크롬에 가깝지 않습니다. Jeff Duntemann의 Assembly Language Step by Step은 초보자에게 재미있는 책입니다.
Erik Reppen

답변:


14

어셈블리 코드를 사용하여 새로운 프로그래머에게 영감을주는 것은 어려울 것입니다. 역동적 인 안녕하세요, 사용자 웹 사이트는 적은 노력으로 훨씬 시원합니다. 기본 수업이 동일하다는 것은 아니지만 입문 과정에는 많은 영감을주는 내용이 있거나 그렇지 않으면 두 번째 과정이 없을 것입니다.

초기 프로그래밍 과정이 Scheme에서 배운 것을 기억하며 .exe로 쉽게 컴파일하고 프로그램을 "실행"할 수 없다는 것에 대부분 좌절했습니다 (MS Visual Basic이 프로그래밍의 끝이라고 생각했습니다). 몇 년이 지나서야 내가 가지고있는 강력한 도구를 실제로 파악했습니다. 처음에는 좀 더 실용적이었던 것에 대해 초기 경험을 쌓았다면 더 고맙게 여기고 그 교훈을 더 잘 얻었을 것이라고 생각합니다.


20
나는 LED 깜박임과 모터 움직임을 크게 놀라게 한 많은 학생들을 보았습니다.
whatsisname

1
@Whatsisname +1, 전자 제품에 얽매이지 않고 할 수있는 한 멋진 인상적인 데모가 될 것입니다. 물론, "드라이버"가 강사가 제공 한 블랙 박스라면 Roomba 해킹과 같은 고급 언어로도 가능합니다.
G__

1
많은 새로운 프로그래머들이 VIC20, C = 64 및 유사한 기계에서의 조립에서 영감을 받았습니다.
Gaius

2
@Gaius 처음에는 아닙니다! 그 기계들을 켜고 기본 통역사에 있습니다. 상당한 경험을 쌓고 기초가 할 수있는 일의 한계에
부딪친

1
@whatsisname 그러나 Arduino와 같은 것을 사용하면 어셈블리를 배울 필요없이 LED를 깜박이고 모터를 움직일 수 있습니다.
Ken Liu

12

저는 소프트웨어 공학과 CS 학생들 모두 에게 끔찍한 아이디어 라고 생각합니다. 일반적으로 전자 공학보다 프로그래밍에 관심이 많은 사람입니다.

그것은 수 있습니다 할 수 있지만, 그것이 의미하지 않는다 해야 할 수. 당시에는 가정용 컴퓨터로 정말 멋진 작업을 수행하는 방법은 어셈블리를 먼저 배우는 것이 었습니다. 초기 하드웨어 제한 때문이었습니다. 고급 언어는 강력하고 빠르지 않았습니다. 요즘에는 고급 언어로 더 짧은 시간에 훨씬 더 멋진 작업을 수행 할 수 있습니다.

더 재미있는 것은, 간단한 게임을위한 빠른 프로토 타입을 작성하고, 알고리즘을 변형하여 놀거나, 레지스터 및 저수준의 물건으로 고생하고있는 것은 무엇입니까?


3
피아니스트로서, 나는 확실히 일부 곡으로 뛰어 들어가는 것이 더 흥미 롭다는 것을 알았지 만, 괜찮은 상태가 되려면 아르페지오, 스케일 등을 연습해야합니다. 등) 피아노가 내부에서 어떻게 작동하는지 알아야합니다. 그것은 당신이 당신의 기술을 얼마나 잘 알고 싶어하는지입니다.
John

10
CashCommons의 @John : 비유가 잘못되었습니다. 어셈블러로 시작하는 것은 해머, 키보드, 웨이트 및 댐퍼를 시작하는 것과 같습니다. 그런 다음 음악 이론 (5 분의 1)으로 이동하여 블랙 키, 화이트 키 비즈니스를 설명합니다. 그런 다음 음계를 연주하기 전에 더 많은 음악 이론으로 넘어갑니다.
S.Lott

3
@ S.Lott : Ehhhhh ... 그것을 사지 마십시오. 트랜지스터에 대한 걱정없이 어셈블리에서 "hello world"유형 프로그램을 작성할 수 있습니다. 프로그래머가되기 위해 칩 디자이너 일 필요는 없습니다. 당신이 말하는 지식은 피아노를 연주하거나 연주하는 것과 관련하여 피아노를 만들거나 수리하기위한 기초가 될 것입니다.
John

3
CashCommons의 @John : "피아노 제작 또는 수리". 이것이 어셈블러의 비유입니다. 어셈블러의 사소한 "hello world"는 작성 수 있지만 OS API 호출 일뿐입니다. I / O 드라이버를 작성하려면 어셈블러가 필수적입니다. 해머와 댐퍼는 성능이 아닌 건물과 유지 보수에 관한 것과 같은 방식입니다.
S.Lott

1
@ S.Lott : 흠 ... 특정 명령 세트가 칩에 달려 있다고 생각하지 않습니까? 좋은 지적.
John

7

나는 그것이 끔찍한 생각이라고 생각하지 않지만, 학생들에게 얼마나 복잡한 프로그램을 제공 할 것인가? 조립에는 더 많은 작업이 필요합니다. 아주 기본적인 것들로 시작한 다음 더 낮은 수준에서 일한 것에 대한 감사를 얻은 후에는 일하기 더 쉬운 것으로 옮기는 것이 좋습니다. 처음 학생들은 종종 자신의 머리에 아이디어들이 다음 헤일로, 또는 MS 오피스 또는 AutoCAD 또는 무언가를 코딩거야 얻고, 그들이 들어가는 방법 많은 일을 볼 때 간단한 어셈블리 언어, 그들은 겁 될 수 있으므로 명확하게 조립하는 것보다 더 좋은 것이 있고 개념을 본 후에 그것들로 옮기는 것입니다. C와 같은 다른 것과 동시에 assemlby를 가르 칠 수도 있습니다.

또한 어떤 어셈블리 언어입니까? MIPS는 작업하기가 비교적 쉬웠으며 에뮬레이터에서 실행되므로 실제 시스템에 문제가 발생할 위험은 없지만 지금보다 더 나은 도구가있을 수 있다고 생각합니다.

는 바로 끝낼 경우, 잘 작동합니다. 조심해...


문제의 복잡성에 +1 저의 투표는 몇 가지 어셈블러 구현과 고급 언어 구현을 대조하는 것입니다. x86 대신 에뮬레이터에서 68000 어셈블러를 사용할 수도 있습니다. x86 / amd64 어셈블러가 어떻게 발전했는지는 모르겠지만 68000은 8086보다 훨씬 깨끗하고 작업하기 쉽습니다. LLVM과 같은 가상 머신 어셈블러도 고려해 볼 가치가 있습니다. 실제 어셈블러와 동일하지는 않지만 많은 유사한 원리를 공유하며 아마도 더 관련성이 있습니다.
Steve314

C와 동시에 ASM을 가르치는 것은 좋은 생각처럼 들립니다
Anto

Steve314 @ : 나는 86 어셈블러에없는 최대 해요,하지만 더 8086보다 복잡이라도 것 같습니다
데이빗 쏜리을

@David-그렇게 기대하지만 어떤면에서는 더 간단 할 수 있습니다. 8086 일 동안 사용 가능한 주소 모드의 범위는 사용중인 특정 레지스터와 명령어에 따라 다릅니다. 68000에는 (대부분의 목적으로) 데이터 레지스터와 주소 레지스터가 있었으며, 각 유형은 인덱스 나베이스 포인터 또는 번거 로움없이 거의 균일하게 사용되었습니다. 시간이 지남에 따라 바뀌었을까요? 68000은 또한 더 많은 레지스터를 가지고있어 메모리 이동 및 이동을 줄입니다. 어쨌든 기본적인 어셈블러 원리를 얻기 위해 SIMD를 배울 필요는 없습니다.
Steve314

@David-세그먼트 화 된 주소 지정을 잊어 버렸다고 믿을 수 없습니다. 이것은 고급 언어에서는 충분히 나빴습니다. 이제는 주소 지정이 다시 세분화되었지만 가상 메모리 등과 관련하여 앱 수준 프로그래머가 걱정할 필요가없는 것은 다릅니다.
Steve314

7

어셈블리는 우리가 전자 학교에서 배운 첫 번째 언어였으며 (1900 년대로 거슬러 올라가는) 자연스러운 선택 인 것 같습니다. 우리는 이산 소자부터 저항 트랜지스터 로직, 로직 게이트, 집적 회로, 프로세서, 어셈블리 프로그래밍에 이르기까지 과정을 진행했습니다. 이 수업에 참여한 많은 학생들은 이전에 어떤 언어로도 프로그래밍 한 적이 없었고 바로 그것을 선택했습니다.

따라서 학생에게 적합한 기초가 마련되면 모국어에 적합한 어셈블리를 선택할 수 있습니다. 그러나 응용 프로그램이나 웹 개발자가 목표 인 사람에게는 어셈블리가 너무 낮은 수준이라고 생각합니다.


7

한 가지 확실한 것은 의회를 먼저 배우는 사람들이 그것을 만들면 놀라운 프로그래머가 될 것입니다.

이것은 내가 운전하는 법을 배웠을 때를 생각 나게한다. 엄마는 주장했다

자신감을 얻을 때까지 자동 차를 배우면 수동 차를 운전할 수 있습니다.

그녀는 내가 필요 이상으로 한 번에 산만 해지기를 원하지 않았다.

프로그래밍하는 법을 배우는 데 적용하십시오. 모든 것을 한 번에 학습자에게 던질 필요가 있습니까? 그들은 어떤 종류의 레지스터에 얼마나 많은 데이터를 저장할 수 있는지 동시에 변수가 무엇인지 배웁니다.

반의 절반 이상이 우리 집회 수업에 실패했으며, 그 당시에는 2 년 이상 프로그래밍에 대해 잘 알고 있다고 생각했던 사람들 그룹이었습니다.

개인적으로 선호하는 것은 모든 것을 다시 배워야한다면 가능한 한 많이하는 언어로 시작하는 것이 었습니다. 그런 다음 배우면서 하위 언어로 거꾸로 이동하십시오.


1
나는 이것이 좋고 건전한 조언이라고 생각합니다. 언젠가는 비트와 바이트를 인식하고 프로세서로 무엇을하는지 알아 두는 것이 중요하지만, 초보자에게는 완벽한 루비 및 파이썬과 같은 언어를 가지고 있으며 우수한 소프트웨어 엔지니어링 원칙을 장려하기 때문에 그로 시작하는 것은 매우 낭비적인 노력입니다.
davidk01

1
강사가 어셈블리 언어 수업을 가르치는 데 별 어려움을 겪지 않았을 가능성을 고려 했습니까?
John R. Strohm 1

나는 그가 놀라운 일을했다고 생각합니다.
CrazyPenguin

3

적어도 추가 노력을 기울일 준비가 된 사람들에게는 현실적인 아이디어입니까?

아니

하지만 기계를 잘 이해했을 것입니다

왜 유리한가요? 이것이 어떻게 가치가 있는지에 대한 예나 힌트를 제공해 줄 수 있습니까?

장점과 단점?

장점 : 없음

단점 :

  • 플래그 및 상태 및 레지스터, 복잡한 메모리 어드레싱 방식, I / O 장치 및 DMA, 인터럽트 및 클럭 사이클 및 항목에 대한 무작위 퀴즈 현대 VM 기반 언어 및 컴퓨팅에 대한 이해를 돕는 것은 없습니다.

  • 실제로 적용되는 컴퓨터에 대한 실제 문제 해결과의 연결을 끊습니다.

  • 최종 사용자와의 이혼과 그들이 해결해야하는 실제 데이터 및 처리 문제.

  • 머신과 가상 머신, 컴파일러, 인터프리터 및 거북의 세계에 대한 설명이 불필요합니다.

  • 더 높은 수준의 언어로 된 "자체의 물리적 구현"에 대한 자세한 설명은 결국 도달하게됩니다.

  • 더 높은 수준의 언어로 된 "메소드 함수가 전달되는 방법"이라는 많은 세부 정보가 결국 도착합니다.

  • 많은 "이것은 80386에는 적용되지 않지만 80586 칩셋에는 적용됩니다"설명.

  • ASM 프로그램이 누군가에게 유용한 것처럼 보이는 것을 수행하도록하는 많은 저수준 OS API 호출.

첫 번째 프로그래밍 언어의 요점은 칩셋을 마스터하지 않는 것입니다.

첫 번째 프로그래밍 언어의 요점은

  1. 컴퓨팅에 대해 생각하는 방법을 이해하십시오.

  2. 유용한 데이터 처리 방법을 이해하십시오.

  3. 무언가를하는 방법을 이해하십시오. 디자인-코드-테스트.


1
@ S.Lott-물론, 그것은 내 원래의 질문의 요점이 아니지만, 고급 언어로 가기 전에 이것을 갖는 것이 유리할 수 있습니다 . 나를 잘못 이해하지 마라, 당신은 올바른 지적을합니다.
Anto

3
-1 많은 단점 나는 장점을 고려합니다. 위에서 사용하기 전에 저수준이 어떻게 작동하는지 아는 것이 좋습니다. 기초가 중요합니다.
Orbling

1
프로그래밍 언어 인 어셈블러는 고급 언어보다 데이터 구조, 논리 및 저수준 기초에 훨씬 더 잘 노출됩니다. 둘 다 장소가 있습니다. 어셈블러는 고급 언어보다 이해하기가 훨씬 쉬울 수 있습니다. 사람들은 처음에는 복잡한 일을하려고하지 않아야합니다.
Orbling

4
어셈블러의 장점은 실제 컴퓨터의 작동 방식을 보여줍니다. 알 잖아 모든 것이 실제로 실행되는 것 .
Paul Nathan

1
@ S.Lott-아닙니다. 그러나 수집 한 기존 지식을 대부분 잘 사용하고 시간이 지남에 따라 새로운 지식을 추가 할 수 있습니다. 파이썬과 같은 고급 언어는 시간이 지남에 따라 새로운 버전으로 제공되지만 오래된 지식을 계속 사용할 수 있습니다 (실제로 파이썬은 v3와의 호환성을 깨뜨 렸습니다)
Anto

3

커리큘럼을 설계해야한다면 첫 학기에는 asm + 기본 컴퓨터 구성 / 아키텍처와 Scheme에 설립 된 SICP 기반 코스라는 두 가지 코스가 있습니다. 두 번째 학기는 Scheme에서 데이터 구조와 기본 알고리즘을 중심으로 진행됩니다.

두 번째 해는 최신 소프트웨어 설계 (OO 설계, 일부 기능 설계, 소프트웨어 엔지니어링, 버전 제어 등)에 중점을 둔 Delphi, C ++ 또는 C # 중 하나를 사용하는 1 년 동안의 프로젝트입니다.

그 효과는 추상과 실용에 강점을 두어 3 년과 4 년에 심층적 인 과정을 이끌어 내야합니다.


3

저는 컴퓨터 과학 수업을 처음 접했는데 나쁜 생각이라고 생각합니다.

  1. 어셈블리는 논리 (이것으로 갈 경우)와 개념과 숫자 사이의 매우 어려운 번역을 모두 사용합니다. Intro CS 학생들은 종종 논리 (루프, if / else, 부울 식)로 어려움을 겪고 있으며 어떤 숫자가 어떤 논리식을 의미하는지 걱정하기 전에이를 처리해야합니다. 더 높은 수준의 언어를 사용하면 이전에 그렇게 생각할 이유가 없었던 학생들을 위해이 논리를 추상화합니다.
  2. 인턴 CS 수업은 반드시 CS를 계속할 CS 전공들만이 수강 할 필요는 없습니다. 종종 그들은 선택 과목에 대한 흥미로운 주제를 "방문"하는 다른 엔지니어링 전공 및 비전공들도 사용합니다. 집회는 열심히 공부하고 헌신적 인 CS 학생들을위한 토대에는 훌륭하지만, 전공을 고려하거나 전공을하려고하지 않지만 현장에 대한 소개를 원하는 학생들에게 종종 프로그래밍이 무엇인지에 대한 훌륭한 개요는 제공하지 않습니다. ; 대부분의 분야에서 그 자체로는별로 유용하지도 않습니다.
  3. 고급 언어는 실제 프로그래밍 작업의 핵심을보다 투명하게 만듭니다. 어셈블리는 기본 메모리 개념, 기본 성능 개념 등과 같은 몇 가지 주요 기본 주제에 부딪치지 만 요즘 IMO에서 더 중요한 유지 관리 가능하고 읽기 쉬운 디자인을 만들지는 않습니다. 초기 학생들은 종종 구식 인 "실제 프로그래머가 다른 사람이 처리 할 수없는 코드를 작성합니다"라는 아이디어를 갖고있는 것으로 보이며, 고급 언어를 가르치면 코딩이 단지 훌륭한 작업이 아니라 공동 작업이라는 것을 가르 칠 수 있습니다.

그러나 어셈블리 / 컴퓨터 하드웨어는 매우 초기 수준이어야한다고 생각합니다. 학생들에게 벨트 아래에서 하나의 고급 언어를 습득 한 다음, 메모리 관리가 필요한 언어로 데이터 구조로 이동하기 전에 저급 하드웨어로 바로 뛰어 들게하십시오.


매우 잘 말 했어요-동의합니다. 첫 번째 과정은 요점을 파악하고, 배우고있는 기술의 종단 간 유용성을 보여주고, 상상력을 자극해야합니다. 어셈블리 언어를 사용하기에 가장 좋은 시간은 하나의 고급 언어를 따르는 것입니다. 이것은 컴퓨터가 실제로 더 높은 수준의 내용을 이해하는 방법을 "후면에서"보는 동기를 부여합니다. 고급 언어를 사용한 후 처음으로 어셈블리 언어를 보는 것은 또 다른 강력한 영향을줍니다. 학생은 전자 제품, 칩, 센서 등을
만납니다

3

어셈블리는 베이직 직후의 제 2 언어였습니다. 그러나 내가 배우고있을 때는 다른 시간이었습니다. Commodore 64는 다른 언어를 사용할 수 있었지만, 빠른 속도로 보이고 싶거나 한 번에 여러 가지 작업을 수행하려면 어셈블리 언어와 인터럽트 작업 방법을 배워야했습니다. Commodore에 창 시스템을 제공 한 GEOS (Graphic Environment Operating System)도 모두 조립되었습니다. 내가 본 것 중 최고의 어셈블리 API였습니다. 또한 코드 스타일을 지정할 수있는 유일한 플랫폼이었습니다. 맞습니다. 기울임 꼴과 다른 글꼴 크기를 사용하여 주석을 읽는 데 유용하다는 것을 알 수 있습니다.

Commodore의 작동 방식에 대해 많은 것을 배웠지 만 Motorolla 칩에는 매우 간단한 opcode 세트가 있습니다. 255 개 미만의 opcode를 서로 분리하여 유지하는 것은 그리 어렵지 않습니다. 나는이었다 하지 칩 및 시스템 아키텍처가 너무 달랐다 인텔 8086 프로그래밍에 Motorolla 6510 칩에 내 경험을 걸다 수. Amiga의 Motorolla 68000 칩으로 이동하는 데에도 같은 문제가 있었을 것입니다.

요컨대, 나는 총회가 좋은 모국어가되어야한다고 말하는 사람에게 전적으로 동의하지 않아야한다. 이유는 다음과 같습니다.

  • 고유 한 구조 나 응용 프로그램의 기능을 분해하는 일반적인 방법이 없습니다. 이것이 바로 고급 언어를 유용하게 만드는 것입니다.
  • 라이브러리에서 메소드를 올바르게 호출하는 방법과 같은 쓸모없는 것을 알아야합니다. 라이브러리가 C에 의해 만들어 졌을 때 스택을 조작하는 것은 의미가 있지만 (더 나은 순서로 모든 것을 얻음) 다른 언어에서는 레지스터 설정을 의미 할 수 있습니다. 이것들은 모두 컴파일러 나 인터프리터에 의해 처리되며 최적화 할 수 없습니다.
  • 코드 를 다른 칩에서 사용할 수 없으며 다른 하드웨어 플랫폼에서 작동 하지 않을 수 있습니다.

오늘날 어셈블리 언어는 손으로 만들어진 어셈블리가 컴파일러에서 생성 한 어셈블리보다 빠른 특정 유한 작업의 속도를 높이는 데 사용됩니다. 응용 프로그램의 기본 구조는 C, C ++ 등과 같은 고급 언어로 수행됩니다. 물론 컴파일러 작성을 시작하면 어셈블리 프로그래밍이 매우 중요해집니다. 우리 중 몇 명입니까?


1

고등학교 졸업반에 집회를 가졌습니다. 이미 Java, Pascal, C 및 C ++로 수업을 수강했으며 그 중 어느 것도 능숙하지 않았고 실제로 회의에서 빨려 들었습니다. 커뮤니티 칼리지의 원격 교육 프로그램에서 수업을 듣는 유일한 사람은 나를 데려갔습니다. 누군가가 나를 위해 컴파일러를 작동시키기까지 한 달이나 두 달 전에.

어셈블리 언어를 먼저 배우는 것이 필요하거나 현명하다고 생각하지는 않지만, 처음 몇 주 동안 어셈블리에서 가르치는 내용, 프로세서 작동 방식 및 일부 디버그 트릭에 대해 배우는 것이 현명합니다. 내가 네오 파이트로서 매우 흥미롭고 깨달음을 알게 된 것들.


0

나는 그것이 왜 그렇게 할 수 없는지 알지 못하지만 그것이 얼마나 좋은 아이디어인지는 당신이 그것을 가르치는 군중에 달려 있습니다. 웹 개발자라는 최종 목표를 가진 사람은 아마도 지루 해져서 파이썬, 루비 등 무언가를 만드는 것에 대한 즉각적인 만족을 줄 수 없기 때문에 그만 둘 수도 있습니다. 그들이 결국 하드웨어 나 다른 저수준 프로젝트에서 일하기를 원한다면 그것은 괜찮은 시작이라고 생각합니다. (컴퓨터 아키텍처 배경을 충분히 제공한다면 말이됩니다.) 다른 언어를 배우기 시작하는 것보다 어렵다고 생각하지만 앞으로 사람들이 더 나은 코드를 작성하는 데 도움이 될 수 있다고 생각합니다.


0

어셈블리 언어는 다음과 같은 것에 집중할 때만 의미가 있다고 생각합니다.

  • 메모리 관리 기술
  • HW IO (특히 타이밍 및 성능 관련 문제)
  • CPU 기능-특히 보안 기능

이 분야에 중점을 두지 않으면 나쁜 조직 습관을 가르치는 경향이있는 단순한 언어 일뿐입니다. 기계 수준 코딩은 도구 키트에 포함되어 있으면 작동 방식을 알 수 있지만 모국어는 좋지 않습니다.

더 높은 수준의 언어에 관심이있는 사람이 있습니다. 그런 다음 C ++을 가르치십시오. 그런 다음 C ++ 컴파일러가 어셈블리 코드를 생성하는 방법에 중점을 둔 어셈블리입니다. v-tables 및 기타 고급 언어 기능을 이해하면 '매직'에서 정보를 제출하는 것보다 언어가 실제로 어떻게 작동하는지 생각하는 데 도움이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.