LINUX.ORG.RU

проект на C++, имитирующий работу арм-процессора

 , ,


1

1

Встретил такое: https://github.com/lucas-streanga/Processor-Project

Вкратце, программа принимает на вход инструкции

00001000000010000000001111111111 # move 16384 into register 0
00001010000000000000000000000000 # print r0
00000000000001000000000000000000 # add r0 and r0 and store in r0 + flags set
00001010000000000000000000000000 # print r0
00001000010010111000000000001000 # loop until carryover occurs
*
!

а выдает такое:

Loading program into memory...

***EXECUTION***

R0: 1023
R0: 2046
R0: 4092
...
R0: 1072693248
R0: 2145386496
R0: 4290772992
R0: 4286578688

End opcode recieved.
Execution ended.
Virtual Cycles used: 427

Я совсем не шарю в теме, но реально ли тут написать такие инструкции, которые выведут в консоль хеловорлд?



Последнее исправление: lvmuser (всего исправлений: 1)

А описание там для кого написано?

Есть инструкции PRNR PRNM, которые выводят значения регистра, но ascii-символы выводить так нельзя. Можешь пропатчить эмулятор и добавить инструкции вывода 8-битных чисел как ASCII

SZT ★★★★★
()

Я совсем не шарю в теме, но реально ли тут написать такие инструкции, которые выведут в консоль хеловорлд?

Не знаю, как работает этот эмулятор. А строковую печать на асме реализовать легко. Особенно если есть операционная ситема. Там просто готовишь буфер, готовишь регистры, потом дергаешь системный вызов, для этого есть команда процессора. Системный вызов ОС заберет данные из подготовленных тобой регистров и напечатает твою строку.

Если без ОС, то тут аппаратуру нужно знать. Наверное можно в видео-память значения передавать. Тут я не очень силен.

hibou ★★★★★
()

Из базовой системы ввода-вывода (BIOS) там только загрузка содержимого файла на исполнение и вот такой вывод содержимого регистров

The processor includes some special instructions for ease of use such as PRNR (print register value) and PRNM (print memory value).

Модно Hello World по вертикали написать

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.