Что такое ассемблер?

ENIAC был первым электронным компьютером общего назначения. Он был построен в Пенсильванском университете и завершён в 1945 году. Снайдер была одной из шести женщин, которые программировали его вручную.
До появления таких машин, как ENIAC, слово «компьютер» означало человека, который выполнял вычисления вручную, и шесть женщин, программировавших ENIAC, были наняты именно для этой работы. Чтобы запрограммировать машину, они перекоммутировали её: подключали кабели и устанавливали переключатели каждый раз, когда задача менялась. Эта перекоммутация — историческая причина существования языка ассемблера. В течение нескольких лет инженеры в Европе и Америке начали заменять провода и настройки переключателей короткими письменными кодами, обозначавшими инструкции, чтобы человек мог читать и изменять программу, не касаясь разъёма.
Во-первых, CPU (центральный процессор) — это чип в центре вашего компьютера, и он выполняет одну задачу: он исполняет длинный список небольших команд, называемых инструкциями, одну за другой, миллиарды в секунду. Каждая инструкция сама по себе проста, например сложение двух чисел, перемещение значения или переход в другое место.
Ассемблер — это форма инструкций, которые выполняет CPU, доступная для чтения человеком. Каждая строка — это (почти) одна машинная инструкция. Здесь нет циклов, объектов или строк. Вы перемещаете числа между регистрами, небольшими ячейками хранения внутри процессора, и памятью.

EDSAC выполнял Initial Orders Дэвида Уилера — одну из первых программ, которые переводили записанные инструкции в машинный код.
Каждому процессору нужна программа, которая читает записанные инструкции и создаёт необработанные биты, исполняемые оборудованием: ассемблер. Ассемблер на этой странице нацелен на один набор инструкций.
Этот симулятор использует RISC-V — современный набор инструкций, применяемый в реальных чипах и преподаваемый в университетах. То, что вы здесь изучите, напрямую применимо к оборудованию.

RISC-V — это открытая архитектура набора инструкций. Любой может реализовать её опубликованную спецификацию в оборудовании, и никакая плата или разрешение не требуются.
Любой проект набора инструкций должен решить, какой объём работы выполняет одна инструкция. Чипы CISC (Complex Instruction Set Computer), включая архитектуру x86, встречающуюся в большинстве настольных и портативных компьютеров, вкладывают большой объём работы в каждую инструкцию. Одна инструкция может прочитать значение из памяти, выполнить над ним арифметику и сохранить результат обратно — всё за один шаг. RISC-V следует проекту, обоснованному в работе Patterson & Ditzel, 1980: каждая инструкция выполняет одну простую операцию, а любое сложное поведение получается путём объединения множества таких инструкций.
RISC расшифровывается как Reduced Instruction Set Computer (компьютер с сокращённым набором инструкций). Оборудование построено так, чтобы с высокой скоростью выполнять небольшую группу простых инструкций. Сложное поведение получается путём объединения этих простых, быстрых шагов.
Ассемблер Кэтлин Бут для ARC (Booth, 1947) и Initial Orders Дэвида Уилера для EDSAC (Wilkes, Wheeler & Gill, 1951) относятся к числу самых ранних работающих ассемблеров, и историки продолжают спорить, какой из них появился первым. RISC-V — набор инструкций, который выполняет этот симулятор, — определяет небольшой открытый список инструкций, который может реализовать любой (Asanović & Patterson, 2014). Каждый урок начиная с этого момента напрямую учит этому набору инструкций.
Ссылки
- [1]IEEE Computer Society. Women of ENIAC.
- [2]Booth, K. General Considerations in the Design of an All Purpose Electronic Digital Computer. 1947.
- [3]Wilkes, M. V., Wheeler, D. J., Gill, S. The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley, 1951.
- [4]Patterson, D. A., Ditzel, D. R. The Case for the Reduced Instruction Set Computer. ACM SIGARCH Computer Architecture News, 1980.
- [5]Asanović, K., Patterson, D. A. Instruction Sets Should Be Free: The Case For RISC-V. UCB/EECS-2014-146, 2014.
- [6]Glen Beck and Betty Snyder program the ENIAC, building 328, Ballistic Research Laboratory. U.S. Army photo, public domain.
- [7]Maurice Wilkes examining a mercury delay line during the construction of EDSAC. Computer Laboratory, University of Cambridge, CC BY 2.0.
- [8]Yunsup Lee holding a RISC-V prototype chip, 2013. CC0.
