Среда разработки ассемблера / Симулятор для начинающих [закрыто]

StackOverflow https://stackoverflow.com/questions/27568

  •  09-06-2019
  •  | 
  •  

Вопрос

Я бы хотел научиться программировать на ассемблере.Я немного разбирался в ассемблере раньше (во время моего компьютерного курса A-Level), но это был определенно упрощенный "псевдо-ассемблер".Я позаимствовал старое руководство моего отца по ассемблеру Z80, и оно кажется довольно интересным, поэтому, если возможно, я бы хотел попробовать Z80 assembler.

Однако у меня нет под рукой процессора Z80, и я хотел бы сделать это на своем ПК (у меня Windows или linux, так что подойдет и то, и другое).Я нашел в Интернете различные ассемблеры, но меня не особенно интересует сборка вплоть до шестнадцатеричного файла, я хочу просто иметь возможность собрать его во что-то, что может запустить какой-нибудь симулятор на ПК.Предпочтительно, чтобы этот симулятор показал мне содержимое всех регистров, ячеек памяти и т.д. И позволил мне пошагово выполнить инструкции.Я нашел несколько фрагментов программного обеспечения, которые предполагают, что они могли бы это сделать, но они либо отказываются компилироваться, либо, похоже, не работают должным образом.У кого-нибудь есть какие-нибудь предложения?Если есть хороший симулятор / IDE, доступные для другого типа ассемблера, то я мог бы попробовать это вместо этого (при условии, что доступно хорошее справочное онлайн-руководство).

Это было полезно?

Решение

Я нашел несколько фрагментов программного обеспечения, которые предполагают, что они могли бы это сделать, но они либо отказываются компилироваться, либо, похоже, не работают должным образом.У кого-нибудь есть какие-нибудь предложения?

Напишите один.Вам лучше всего выбрать хороший, простой набор инструкций (Z80 должен быть идеальным).Я помню, как делал это на первом курсе бакалавриата - кажется, мы написали симулятор на C ++ и смоделировали сборку 6800, но на самом деле подойдет любой язык / набор инструкций.

Идея "изучения языка ассемблера" в наши дни состоит в том, чтобы получить представление о том, как компьютеры работают на самом низком уровне, только у немногих избранных (авторов компиляторов и т.д.) Есть какие-либо реальные причины писать код на ассемблере в наши дни.Современные процессоры напичканы функциями, предназначенными для использования компиляторами, чтобы помочь оптимизировать код с точки зрения скорости / параллельного выполнения / энергопотребления / и т.д., и попытка написать ассемблер вручную для современного процессора была бы кошмаром.

Не беспокойтесь о готовности вашего приложения к производству, если только вы этого не хотите - по всей вероятности, фрагменты программного обеспечения, которые вы нашли до сих пор, были написаны точно такими же людьми, как вы, которые хотели понять, как работает ассемблер, и написали свой собственный симулятор, а затем поняли, сколько работы потребуется, чтобы "подготовить его к производству", чтобы широкая публика могла им пользоваться.

Другие советы

Возможно, вы захотите ознакомиться с симулятором 8085 с открытым исходным кодом "GNUSim8085", она специально предназначена для использования в образовательных целях, и на самом деле была написана студентом во время подготовки к экзаменам.Он работает как на Linux, так и на Windows.

Если вы находитесь в Windows Тренажер 8085 это лучший выбор.8085 Simulator by J-tech Softwares

Его пользовательский интерфейс превосходен, чем у любого другого симулятора.Также этот симулятор обеспечивает просмотр карты памяти в реальном времени очень быстро (также во время выполнения).

Но этот не поддерживает Windows 98 или ниже, для этого вам нужно проверить другие симуляторы, такие как "GNUSim8085".

MipSim БЕСПЛАТЕН

http://www.mipsim.com

Основные характеристики MIPSim 2

  • Встроенный редактор кода с такими функциями, как подсветка синтаксиса и сворачивание
  • Отображать значения регистров и памяти в различных представлениях (целое число со знаком, целое число без знака, шестнадцатеричное и ASCII)
  • Установите размер блока (полное слово, полслова, байт) ячеек памяти для упрощения проверки значений в памяти
  • Изменяйте значения регистров и ячеек памяти одним щелчком мыши даже во время моделирования и отладки
  • Обновление пользовательского интерфейса в режиме реального времени позволяет вам видеть, как изменяются значения регистров и ячеек памяти в процессе выполнения
  • Встроенный отладчик с функциями пошагового выполнения инструкций, пропуска команд и точки останова
  • Инструменты для вставки строк ASCII, UNICODE и целых значений в память для тестирования вашего кода
  • Инструменты для проверки дублирующихся или отсутствующих меток и параметров инструкций
  • Сохраните состояние компьютера (значения всех регистров и ячеек памяти), чтобы при следующем запуске симулятора вы могли продолжить с того места, где остановились!
  • Установите скорость моделирования - низкие скорости отлично подходят для отслеживания вашего кода и просмотра его поведения
  • Кодирование инструкций - создание машинного кода в двоичном или шестнадцатеричном представлении.
  • Улавливать ошибки времени сборки и времени выполнения
  • Упрощенная отладка с описательными сообщениями об ошибках
  • Многопоточный дизайн - MIPSim не застревает (надеюсь ;), даже если выполняемый ассемблерный код ошибочен или содержит бесконечные циклы
  • MIPSim API - создавайте свои собственные программы, которые могут считывать данные из регистров и памяти MIPSim и записывать их в них, что обеспечивает большую гибкость для мощного тестирования!

Целься выше!Попробуйте раздобыть симулятор для более мощного языка ассемблера.Помните, что Z80 и 808x были недорогими процессорами с дешевыми и неудобными наборами команд.

Что-то вроде VAX от DEC считалось "Роллс-ройсом" среди наборов инструкций.А еще есть сумасшедшие наборы инструкций Risc, которые делают некоторые действительно странные вещи.Может быть, вам удастся найти их определения, чтобы иметь возможность попробовать их реализовать.

Возможно, вас заинтересует это для симулятора Z80, и у меня был хороший опыт работы с WinAsm ( Победа ).

Вы также могли бы рассмотреть возможность изучения языка ассемблера x86, что вы могли бы сделать с помощью встроенного ассемблера в Visual Studio - хотя это больший набор команд, чем Z80, у вас было бы преимущество в том, что вы могли бы использовать гораздо лучшие инструменты, чем были бы доступны для Z80.

Я также только что вспомнил, что Keil 8051 и Arm tools имеют симулятор в IDE - их версии с ограниченным размером доступны для бесплатного скачивания с www.keil.com

Если вы уже знакомы с .NET, то это может быть полезно:

http://www.viksoe.dk/code/asmil.htm

Это немного ограничено и может работать только с .NET 1.1, но вы могли бы, по крайней мере, использовать для этого "современную" IDE, и для этого есть множество документов.

<%@ page language="Asm80386" %>
<%
Str:  DB "Testing...", 0

  mov eax, -2
  cmp eax, 2
  jle Label1
  xor eax, eax
Label1:
  lea esi, Str
  push esi
  call "Response.Write(string)"
  pop esi
%>
<br>EAX: <%= eax %>

Другой вариант, если вы хотите перейти на "жесткое ядро", - это взять что-то вроде FreeDOS и VMware и использовать это.Я уверен, что гаражная распродажа (распродажа автомобильных багажников?дворовая распродажа?) или в букинистическом магазине можно было бы приобрести экземпляр старой библии Питера Нортона DOS interrupts.:)

Лично я изучил x86 asm с помощью Turbo Pascal (который, я думаю, теперь свободен от Borland?), который имел возможность встраивать инструкции по сборке внутри функции.Упростилась настройка приложения, и я смог сосредоточиться на том, что хотел сделать.Позже я использовал MacVAX в университете Окленда, и все было в порядке, но VAX очень сильно сдох - с таким же успехом вы можете изучать x86 :)

СимпСим на это определенно стоит посмотреть.Это только для Windows, но набор функций довольно приличный:

  • Основная память и дисплей регистра
  • Встроенный редактор с подсветкой синтаксиса
  • Функции запуска, пошагового выполнения и прерывания

WinApe ( ВинАпе ) является хорошим эмулятором Amstrad CPC.Amstrad CPC был Домашним компьютером, выпущенным в 80-х годах.В качестве процессора он использовал Z80.Используя эмулятор, вы можете отображать множество внутренних компонентов во время программирования.Он включает в себя отладчик и дизассемблер для кода Z80.

Сейчас это не имело бы никакого значения для вас, но только для проходящих мимо людей.Это лучший симулятор ассемблерного кода, с которым я сталкивался.Действительно, оно того стоит!

http://www.emu8086.com/

Взгляните на Эмуляторы Thomas Scherrer Z80 для получения списка потенциальных эмуляторов вы могли бы использовать.

Я пишу z80 asm для ZX Spectrum (тем не менее, я знаю :)) и использую SJasmPlus для ссылки на файл эмулятора spectrum.Многие из лучших эмуляторов Spectrum, таких как Fuse и ZXSpin, также имеют встроенные редакторы для отладки и исправления "на лету".

Когда я учился в колледже, мы использовали микропроцессоры PIC.Они производятся компанией под названием Microchip.У них также есть отличная IDE с эмулятором / симулятором чипов, который может позволить вам делать что-то, фактически не имея чипов.

Зачем использовать эмулятор?

Скачать МАСМ или NASM и напишите старую добрую архитектуру 80386.Множество онлайн-образцов и обучающих инструментов.

Масса реальных причин использовать ассемблер!

существует симулятор Visual6502 для обучения основам архитектуры микропроцессора.В нем есть редактор, ассемблер, операции ввода-вывода и анимация работы микропроцессора.I доступен по следующей ссылке.

http://www.pcsistem.net/visual/index.htm

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top