ログ

見る価値ありません

アセンブラ

アセンブリ言語で書いたサブルーチンをC言語から呼び出す

メモ str.h int strlen(const char*); str.asm global strlen section .text ; int strlen(const char*) strlen: xor rax, rax _L1: cmp [rdi], byte 0 jz _L2 inc rax inc rdi jmp _L1 _L2: ret test.c #include <stdio.h> #include <str.h> int main(void) { printf("%d\n"</str.h></stdio.h>…

x86_64アセンブリでechoプログラム書いた

環境 Ryzen 5 2600 Windows10 2004 WSL2 Ubuntu 20.04.1 LTS NASM version 2.14.02 GNU ld (GNU Binutils for Ubuntu) 2.34 コード global _start section .text _start: mov rbp, rsp jmp main main: sub rsp, 0x100 ; char string[256]; mov rax, rbp sub …

C言語に機械語を埋め込む

環境 Windows10 1903 WSL1/Ubuntu 18.04.3 LTS gcc 7.4.0 コード #include<stdio.h> int reduce(int (*funcp)(int, int), int array[], size_t size, int acc){ if(size == 0){ return acc; }else{ return reduce(funcp, array + 1, size - 1, (*funcp)(acc, *array))</stdio.h>…

armアセンブラ(thumb2)メモ

レジスタ thumb命令の大半はr0-r7にしかアクセスできない 名称 別名 用途 r0 - 引数1、返り値、破壊可能 r1 - 引数2、破壊可能 r2 - 引数3、破壊可能 r3 - 引数4、破壊可能 r4 - r5 - r6 - r7 - gccではfpとして利用(thumb命令時) r8 - r9 - プラットフォー…

Nucleo F446REでLチカと+α

参考 idken.net yuki-sato.com リファレンスマニュアル https://www.st.com/content/ccc/resource/technical/document/reference_manual/4d/ed/bc/89/b5/70/40/dc/DM00135183.pdf/files/DM00135183.pdf/jcr:content/translations/en.DM00135183.pdf 環境 Nuc…