피드로 돌아가기
Hacker NewsHacker News
Infrastructure

16 Bytes x86 Assembly를 통한 Sierpinski Fractal 구현

wake up! 16b

2026년 5월 24일8advanced

Context

극단적인 크기 제약인 16 bytes 내에서 시각적 패턴과 오디오를 동시에 생성해야 하는 Sizecoding 과제임. 하드웨어의 초기 메모리 상태와 BIOS 인터럽트의 특성을 활용하여 추가적인 초기화 과정 없이 시스템 리소스를 제어함.

Technical Solution

  • int 10h 호출을 통한 40x25 텍스트 모드 설정 및 VGA 텍스트 버퍼(0xB800)를 연산 공간으로 활용하는 구조 설계
  • lodsb와 sub si, 57 명령어를 조합하여 메모리 상에서 특정 스텝 사이즈(56 bytes)로 횡단하는 순환 구조 구축
  • XOR 연산을 통해 Carry-free addition을 구현함으로써 Modulo 2 연산 기반의 Sierpinski triangle 패턴 생성
  • Rule 60 Cellular Automata 원리를 적용하여 비트 1의 토글 상태를 PC Speaker 포트(61h)로 직접 출력하는 Synesthesia 아키텍처 구현
  • 65,536 bytes의 DOS 세그먼트 래핑(Wrapping) 특성을 이용해 별도의 루프 제어 변수 없이 무한 반복 구조 달성

- 하드웨어의 기본 초기 상태(Default State)를 제약 사항이 아닌 설계의 입력값으로 활용하는 관점 검토 - 데이터 구조(메모리 맵)와 출력 장치(스피커/디스플레이)를 동일한 데이터 스트림으로 공유하는 리소스 최적화 전략 분석 - 알고리즘의 수학적 특성(Binomial sequence, Lucas's theorem)을 이용해 조건문 없이 로직을 단순화하는 기법 적용

원문 읽기