Makro Expanded Font Family & Specimen - Tokotype

Makro Expanded

Makro Expanded

Makro Expanded Styles

Uprights

ExtraLight

Light

Regular

Medium

SemiBold

Bold

ExtraBold

Black

Makro Expanded Styles

Italics

ExtraLight Italic

Light Italic

Italic

Medium Italic

SemiBold Italic

Bold Italic

ExtraBold Italic

Black Italic

Variable

400px

0px

1em

Holidays

400px

0px

1em

Facilities

400px

0px

1em

Custards

400px

0px

1em

Typeface

48px

0px

1.2em

Assembly language is useful in reverse engineering. Many programs are distributed only in machine code form which is straightforward to translate into assembly language by a disassembler, but more difficult to translate into a higher-level language through a decompiler.

24px

0px

1.4em

Video games (also termed ROM hacking), which is possible via several methods. The most widely employed method is altering program code at the assembly language level. Assembly language is still taught in most computer science and electronic engineering programs. Although few programmers today regularly work with assembly language as a tool, the underlying concepts remain important. Such fundamental topics as binary arithmetic, memory allocation, stack processing, character set encoding, interrupt processing, and compiler design would be hard to study in detail without a grasp of how a computer operates at the hardware level. Since a computer's behaviour is fundamentally defined by its instruction set, the logical way to learn such concepts is to study an assembly language. Most modern computers have similar instruction sets. Therefore, studying a single assembly language is sufficient to learn the basic concepts, recognize situations where the use of assembly language might be appropriate, and to see how efficient executable code can be created from high-level languages. Assembly language is often used for low-level code, for instance for operating system kernels, which cannot rely on the availability of pre-existing system calls and must indeed implement them for the particular processor architecture on which the system will be running. Some compilers translate high-level languages into assembly first before fully compiling, allowing the assembly code to be viewed for debugging and optimization purposes. Some compilers for relatively low-level languages, such as Pascal or C, allow the programmer to embed assembly language directly in the source code (so called inline assembly). Programs using such facilities can then construct abstractions using different assembly language on each hardware platform. The system's portable code can then use these processor-specific components through a uniform interface. Assembly language is useful in reverse engineering. Many programs are distributed only in machine code form which is straightforward to translate into assembly language by a disassembler, but more difficult to translate into a higher-level language through a decompiler. Tools such as the Interactive Disassembler make extensive use of disassembly for such a purpose. This technique is used by hackers to crack commercial software, and competitors to produce software with similar results from competing companies. Assembly language is used to enhance speed of execution, especially in early personal computers with limited processing power and RAM.

16px

0px

1.4em

In computing, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence between the instructions in the language and the architecture's machine code instructions. Assembly language usually has one statement per machine code instruction (1:1), but constants, comments, assembler directives, symbolic labels of, e.g., memory locations, registers, and macros are generally also supported. The first assembly code in which a language is used to represent machine code instructions is found in Kathleen and Andrew Donald Booth's 1947 work, Coding for A.R.C.. Assembly code is converted into executable machine code by a utility program referred to as an assembler. The term "assembler" is generally attributed to Wilkes, Wheeler and Gill in their 1951 book The Preparation of Programs for an Electronic Digital Computer, who, however, used the term to mean "a program that assembles another program consisting of several sections into a single program". The conversion process is referred to as assembly, as in assembling the source code. The computational step when an assembler is processing a program is called assembly time. Because assembly depends on the machine code instructions, each assembly language is specific to a particular computer architecture such as x86 or ARM. Sometimes there is more than one assembler for the same architecture, and sometimes an assembler is specific to an operating system or to particular operating systems. Most assembly languages do not provide specific syntax for operating system calls, and most assembly languages can be used universally with any operating system, as the language provides access to all the real capabilities of the processor, upon which all system call mechanisms ultimately rest. In contrast to assembly languages, most high-level programming languages are generally portable across multiple architectures but require interpreting or compiling, much more complicated tasks than assembling. Today, it is typical to use small amounts of assembly language code within larger systems implemented in a higher-level language, for performance reasons or to interact directly with hardware in ways unsupported by the higher-level language. For instance, just under 2% of version 4.9 of the Linux kernel source code is written in assembly; more than 97% is written in C. Assembly language uses mnemonic symbols to represent low-level machine instructions (opcodes), directives, and usually architectural registers and flags. Some of the mnemonics may be built-in and some user-defined. Many operations require one or more operands in order to form a complete instruction. Most assemblers permit named constants, registers, and labels for program and memory locations, and can calculate expressions for operands. Thus, programmers are freed from tedious repetitive calculations and assembler programs are much more readable than machine code. Depending on the architecture, these elements may also be combined for specific instructions or addressing modes using offsets or other data as well as fixed addresses. Many assemblers offer additional mechanisms to facilitate program development, to control the assembly process, and to aid debugging. Some are column oriented, with specific fields in specific columns; this was very common for machines using punched cards in the 1950s and early 1960s. Some assemblers have free-form syntax, with fields separated by delimiters, e.g., punctuation, white space. Some assemblers are hybrid, with, e.g., labels, in a specific column and other fields separated by delimiters; this became more common than column-oriented syntax in the 1960s. A macro assembler is an assembler that includes a macroinstruction facility so that (parameterized) assembly language text can be represented by a name, and that name can be used to insert the expanded text into other code.
Solid Outline
Glyph Name
Character Name
Unicode Decimal
Unicode Hex

About Font

Makro Expanded opens up the same flared terminals and quirky R at the wide end of that axis, again without losing the tension between structure and ornament that defines the family. The high contrast joints and stiff shoulder hold at the wider setting too. It carries the same seven weight range with matching italics and Latin Extended coverage, on the same axis as the rest of the family. Expanded is a position on that axis rather than a separate build, useful for display work that has the room to let the letterforms breathe.

Font Information

Collections

16 Styles – Variable

Version

4.2

File Format

OTF, TTF, WOFF2

Designers

Gumpita Rahayu, Faza Mufti

PDF Specimen

PDF Specimen

Language Supports

Afar
Afrikaans
Andaandi
Dongolawi
Anuta
Aragonese
Arbëreshë Albanian
Asturian
Atayal
Basque
Bemba (Zambia)
Bikol
Bislama
Borana-Arsi-Guji Oromo
Bosnian
Breton
Catalan
Cebuano
Central Aymara
Chamorro
Chavacano
Chiga
Cook Islands Māori
Cornish
Corsican
Creek
Czech
Danish
Eastern Arrernte
Eastern Oromo
Faroese
Fijian
French
Friulian
Ganda
German
Gheg Albanian
Gilbertese
Gusii
Haitian
Hopi
Hungarian
Hän
Icelandic
Igbo
Iloko
Indonesian
Italian
Jamaican Creole English
Javanese
Jola-Fonyi
Kabuverdianu
Kaingang
Kala Lagaw Ya
Kalaallisut
Kekchí
Kenzi
Mattokki
Kirmanjki
Latgalian
Lower Sorbian
Luo (Kenya and Tanzania)
Makonde
Malagasy
Maltese
Manx
Maori
Mauritian Creole
Minangkabau
Mohawk
Montenegrin
Murrinh-Patha
Mwani
Naga Pidgin
Neapolitan
Nobiin
North Azerbaijani
North Ndebele
Northern Sami
Norwegian
Nyankole
Orma
Pampanga
Papiamento
Polish
Portuguese
Potawatomi
Quechua
Romanian
Romansh
Rotokas
Samoan
Saramaccan
Sena
Seselwa Creole French
Sicilian
Slovak
Slovenian
Soga
Southern Aymara
Southern Sotho
Spanish
Sranan Tongo
Sundanese
Swahili
Swiss German
Tagalog
Talysh
Tetun Dili
Tokelau
Tonga (Tonga Islands)
Tosk Albanian
Tsakhur
Tuvalu
Tzotzil
Upper Sorbian
Venetian
Vietnamese
Võro
Walser
Warlpiri
Wayuu
West Central Oromo
Western Frisian
Yoruba
Zapotec

Related Family

16 Styles – Variable

Makro Condensed

Learn More

16 Styles – Variable

Download Trial Fonts for Free

Take our fonts for a spin! Enter your name, email address, and the font of your choice. Then, you can download it directly and start testing it for your project.