Skip to content

Instantly share code, notes, and snippets.

@alisnic
alisnic / method_patterns.rb
Created November 28, 2012 17:05
ruby method patterns
# Usage
# class Foo
# include MethodPatterns
#
# defp :greet, check(:nil?) do |obj|
# p 'HA! NIL!'
# end
#
# defp :greet, match_any do |obj|
# p 'Hey, Object!'
global setjmp
setjmp:
push ebx
mov ebx,[8 + esp]
mov [0 + ebx],edi ; buf->edi == 0(ebx) == EDI
mov [4 + ebx],esi ; buf->esi == 4(ebx) == ESI
mov [8 + ebx],ebp ; buf->ebp == 8(ebx) == EBP
void longjmp(jmp_buf buf, int ret_val)
{
unsigned *esp;
/* make sure return value is not 0 */
if(ret_val == 0)
ret_val++;
/* EAX is used for return values, so store it in jmp_buf.EAX */
buf->eax = ret_val;
/* get ESP for new stack */
@alisnic
alisnic / Makefile
Created October 8, 2012 07:41
Os class Makefile for lab3
all: clean floppy.img
clean:
rm -f *.o *.bin *.elf *.img
floppy.img: clean kernel.bin boot.bin
cat boot.bin kernel.bin /dev/zero | dd bs=512 count=2880 of=floppy.img
loader.o: loader.asm
nasm -f elf loader.asm -o loader.o