Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0xffset/x86-assembly
A lot of x86-Assembly programs with C/C++
https://github.com/0xffset/x86-assembly
assembly c low-level-programming nasm register x86
Last synced: 23 days ago
JSON representation
A lot of x86-Assembly programs with C/C++
- Host: GitHub
- URL: https://github.com/0xffset/x86-assembly
- Owner: 0xffset
- License: mit
- Created: 2020-12-20T16:20:26.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2020-12-25T18:25:16.000Z (about 4 years ago)
- Last Synced: 2024-11-21T20:12:52.910Z (3 months ago)
- Topics: assembly, c, low-level-programming, nasm, register, x86
- Language: Assembly
- Homepage:
- Size: 47.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
![]()
x86-Assembly
A lot of x86-Assembly programs with their counterpart in C/C++### Quickly Assembly x86 References
#### General-Purpose Register> *General-purpose registers (GPRs) can store both data and addresses, i.e., they are combined data/address registers; in some architectures, the register file is unified so that the GPRs can store floating-point numbers as well.*
>
> *Wikipedia*| Register | Common Use |
|--|--|
| EAX | *Accumulator*|
| EBX | *Memory pointer, base register*
| ECX | *Loop control an counters*
| EDX | *Interger multiplication and division*
| ESI | *String instruction source pointer and index register*
| EDI | *String instruction destination pointer and index register*
| ESP | *Stack pointer*
| EBP | *Stack frame pointer*### Instruction Operants
|Type| Example | Equal to|
|--|--|--|
| Immediate | *mov eax,45* |*eax = 45*|
|| *imul ebx, 12h* | ebx *= 0x12|
|| *xor dl, 44h* | ebx *= 0x44
|| *add esi,8* | *esi ^= 8*
|Register| *mov eax, ebx* | *eax = ebx*
|| *inc ecx* | *ecx += 1*
|| *add ebx,esi* | *ebx += esi*
|| *mul ebx* | edx:eax = eax * ebx
|Memory| *mov eax,[ebx]* | eax= *ebx
|| add eax,[val] | eax += *val
|| or ecx,[ebx+esi] | ecx |= *(ebx + asi)
|| sub word ptr [edi],12 | * (short*) edit -=12