Low Level Brainfuck. Continuing

Low Level Brainfuck. Continuing Movement I 3r33635.  3r3644. Movement II 3r33635.  3r3644. Part III 3r33635.  3r3644. 3r33635.  3r3644. We write brainfuck on TurboAssembler'e. 3r33635.  3r3644. 3r33635.  3r3644. Add the output of the array. data_arr ("Tape" Turing machines) on the screen. 3r33635.  3r3644. We write a program that displays the elements of an arbitrary array by means of the function 09h of the interrupt 21h. 3r33635.  3r3644.
3r33510. .model tiny; ascii-decoder.asm
data_arr DB ?????????????? '$'; data 3r3644. 3r3644. .code 3r3644. ORG 100h
; Prepare all the necessary r3r3644...
+ 0 -

How to write in an assembler program with overlapping instructions (another bytecode obfuscation technique)

How to write in an assembler program with overlapping instructions (another bytecode obfuscation technique)We present to your attention the technique of creating assembler programs with overlapping instructions, - to protect the compiled byte-code from disassembling. This technique is able to withstand both static and dynamic analysis of bytecode. The idea is to pick up such a stream of bytes, when disassembling which starting from two different offsets, two different chains of instructions were obtained, that is, two different ways of executing the program. To do this, we take multibyte assembly instructions, and hide the protected code in the variable parts of the byte code of these instructions...
+ 0 -

Brainfuck Interpetor on TASM

Brainfuck Interpetor on TASM 3r33737. 3r3-31. 3r33333.
 3r33737. To begin with, we will write an interpreter in a high-level language, for example, in Pascal.
 3r33737. Array 3r33518. data_arr [/b] will represent the data memory, line 3r33518. str_arr [/b] will contain commands.
 3r33737. We write a program that outputs a character whose ascii code corresponds to the number 3r33518. + [/b] (therefore, we only need the commands 3r33518. + 3r33519. and 3r33518 3r33519.)
 3r33737. 3r3638. var
data_arr: array[110]of integer; //data array
str_arr: string; //team 3r34343. i, j: integer; //indices of string and array
j: ...
+ 0 -

Creating a demo for the old phone - AONDEMO

Creating a demo for the old phone - AONDEMOI wanted to do a demo since I first got to know this phenomenon of computer subculture on the classic example of Polish
Lyra II
. I also regularly wanted to exhibit something on the largest Russian demopati,
Chaos Constructions
, but each time did not reach his hands. Finally managed to meet both needs at once, in the style of Van Damme (double hit, with a turntable) - make and expose
. In the contest
ZX Spectrum 640K Demo
+ 0 -

We write our simplest program for ARM Cortex-M3

We write our simplest program for ARM Cortex-M3 Good afternoon! Today I want to tell you how to write a minimal program that will run on ARM Cortex-M3 and at the same time print "Hello, World!". We will try to disassemble by steps the necessary minimum, which we need for this. We will start on the QEMU emulator. Therefore, anyone can reproduce, even if he does not have the glands at hand.
So, let's go!
here ). Next, we need to write the main logic of our program, the start code that will give control to the program, and the linker script.
On the habr already enough not bad ...
+ 0 -

Creating 1k intro Chaos for ZX-Spectrum

Creating 1k intro Chaos for ZX-Spectrum  
Initially, I did not plan to do a demo on
Chaos Constrictions 2018
, but 2-3 weeks before
I realized that I could not go empty-handed to demopati, and decided to write a small demonstration for
386 /EGA /DOS
Having compiled in
his or her AnotherGraphicsLibrary , which perfectly fit into the bitplan structure
mode, I was disappointed with the brakes, especially the brakes
. The demo in the form in which I would like to see it, for this very limited period, it was impossible to do.
However, I could not give up and not do anything. And then I remembered that ...
+ 0 -

Low-level hacking of ATMs NCR

+ 0 -

Creating an emulator arcade machine. Part 3

Creating an emulator arcade machine. Part 3

Parts first and second .

The emulator of the processor is 8080


The shell of the emulator

Now you need to have all the necessary knowledge to start creating the 8080 emulator.
I will try to make my code as clear as possible, each opcode is implemented separately. When you get comfortable with it, you might want to rewrite it to optimize performance or reuse the code.
For starters, I'll create a memory structure that will contain fields for everything I thought was necessary when writing a disassembler. There will also be a space for the memory buffer, which will represent ...[/h][/h]
+ 0 -

Creating an emulator arcade machine. Part 2

Creating an emulator arcade machine. Part 2

The first part of here .

Disassembler of the processor 8080



We need information about the opcodes and their corresponding commands. When you search for information on the Internet, you will notice that there are a lot of mixed information about the 8080 and Z80. The Z80 processor was a follower of the 8080 - it executes all 8080 instructions with the same hex codes, but also has additional instructions. I think, while you should avoid information about the Z8? so as not to get confused. I created an opcode table for our work, it is ...[/h][/h]
+ 0 -