Cream Live vol.1

たまに聴くにはよいのではなかろうか。ハウスっぽいテクノが多め。

ProductName Cream Live, Vol. 1
Various Artists
Deconstruction / ¥ 2,396 (1995-03-16)


昔なつかしの。

Le Voie, Le Soleil / Subliminal Cuts あたりが好き

と思ったらHed Kandiに入ってるのか。

ProductName Hed Kandi:A Taste Of Winter 2008
Various Artists
Hed Kandi / ¥ 900 (2007-12-24)
通常2~3週間以内に発送

アセンブリ言語での局所変数

局所変数とはスタック上に確保されたものであり.globlで指定されるものとは異なる。

100までの総和を局所変数を使ってもとめる

int main()
{
  print_int(sum(10));
  print_string("\n");
  return 0;
}

int sum(int n)
{
  int s;
  s = 0;
  while(n>0){
    s = s + n;
    n = n - 1;
  }
  return s;
}

関数後ごとにスタックを設定してsum2で$v0に結果を書き込んで、mainの

move $a0, $v0

で返り値を受ける。

        .data

_s1:    .asciiz "\n"

        .text
        .globl main
main:
        addiu $sp, $sp, -24
    sw    $ra, 20($sp)
    sw    $fp, 16($sp)
    move  $fp, $sp

    li    $a0, 100
    jal   sum
    move  $a0, $v0
    li    $v0, 1
    syscall

    la    $a0, _s1
    li    $v0, 4
    syscall

    li    $v0, 0
    move  $sp, $fp
    lw    $ra, 20($sp)
    lw    $fp, 16($sp)
    addiu $sp, $sp, 24
    jr    $ra

sum:
    addiu $sp, $sp, -12
    sw    $ra, 8($sp)
    sw    $fp, 4($sp)
    move  $fp, $sp

    sw    $zero, 0($fp)

_sum_1:
    slt   $t0, $zero, $a0
    beq   $t0, $zero, _sum_2

    lw    $t1, 0($fp)
    add   $t1, $t1, $a0
    sw    $t1, 0($fp)

    addi  $a0, $a0, -1

    b     _sum_1

_sum_2:
    lw    $v0, 0($fp)
    move  $sp, $fp
    lw    $ra, 8($sp)
    lw    $fp, 4($sp)
    addiu $sp, $sp, 12
    jr    $ra

18章終了

アセンブリ言語での配列

.wordを連続して書くことで、連続したメモリアドレスに語が確保される

# int a[2] = {3, 2, 1};
    .globl    a
a:  .word     3
    .word     2
    .word     1

12章まで読んだ。

macbook買った

U隊長が4年半使っていたソーテックのノートから、macbookに乗り換えることにした。

ProductName APPLE MacBook 2.26GHz 13.3インチ 250GB MC207J/A

アップル / ¥ 98,800 (2009-10-21)
通常1~3週間以内に発送

子育ての空いた一瞬の隙をついて、開けばすぐに復帰するmacは魅力的らしい。

SAMURAIROCK 秘剣燕返し

柱焼酎というらしい。

1256213003

本醸造の源流かぁと飲んでみたら、焼酎の日本酒割りっていう感じのジャンルの飲み物だった。

夕焼けグリッチ

5x5のタイル状にしてみた。

1256111943

好みの夕暮れの色があるように、好みのノイズ量があるに違いないので、もう少しノイズの入れ方を考えないと。

import base64,re,Image
from random import randint

def glitch(infile,outfile):
    jpg_text = base64.encodestring(open(infile,"rb").read())
    glitched_text = ""
    count = 0
    width,height = Image.open(infile).size
    num = width * height / 10000
    for c in jpg_text:
        if c == '0':
            if randint(0,num) == 0:
                count += 1
                glitched_text += str(randint(0,9))
            else:
                glitched_text += c
        else:
            glitched_text += c
    glitched_jpg = base64.decodestring(glitched_text)
    open(outfile,"wb").write(glitched_jpg)
    return count
if __name__ == '__main__':
    for i in range(25):
        outfile = "test_%d.jpg" % i
        count = glitch("/Users/kzfm/yuki3.jpg",outfile)
        #print "%d: %d" % (i,count)

    tiled_im = Image.new('RGB',(1600,1200))
    tiled_px = tiled_im.load()
    for i in range(5):
        for j in range(5):
            n = 5*i+j;
            imgfile = "/Users/kzfm/python/test_%d.jpg" % n
            im = Image.open(imgfile)
            px = im.load()
            for x in range(320):
                for y in range(240):
                    nx = 320 * j + x
                    ny = 240 * i + y
                    tiled_px[nx,ny] = px[x,y]
    tiled_im.show()

昼下がりグリッチ

今日もグリッチ

import Image,sys
from random import randint

file = sys.argv[1]
im = Image.open(file)

width,height = im.size
interval = 0

for h in range(height):
    if(interval == 0):
        interval = randint(0,height-1)
        rand_slide_x = randint(0,14)
        rand_slide_y = randint(0,4)
        slide_x = 0
        slide_y = 0
    else:
        interval -= 1

    slide_x += rand_slide_x
    slide_y += rand_slide_y

    for w in range(width):
        current = (w,h)
        new_h = h + slide_y
        new_w = w + slide_x
        if new_h >= height: new_h = h
        if new_w >= width: new_w = w
        src = (new_w,new_h)
        im.putpixel(current,im.getpixel(src))

im.show()
im.save("glitch091021.jpg")

1256101630

spim

グローバル変数の代入

    .data

    .globl src
src: .word 2001

    .globl dst
dst: .word 0

    .text
    .globl main
main:
    la $t0, src
    lw $s0, 0($t0)
    la $t1, dst
    sw $s0, 0($t1)
    li $v0, 0
    jr $ra

実行。printでメモリアドレスとか内容が表示されるので、runの前後で比較する。

$ spim
SPIM Version 7.4 of January 1, 2009
Copyright 1990-2004 by James R. Larus (larus@cs.wisc.edu).
All Rights Reserved.
See the file README for a full copyright notice.
Loaded: /opt/local/share/spim/exceptions.s
(spim) load "ls.as"
(spim) print dst
Data seg @ 0x10010004 (268500996) = 0x00000000 (0)
(spim) print src
Data seg @ 0x10010000 (268500992) = 0x000007d1 (2001)
(spim) run
(spim) print dst
Data seg @ 0x10010004 (268500996) = 0x000007d1 (2001)
(spim) print src
Data seg @ 0x10010000 (268500992) = 0x000007d1 (2001)

博龍軒

九大医学部からちょっと離れたとこにある。

1256074647

店内はちょっと豚骨臭い。

わんたんめんを注文。

1256074690

麺は平打ちの細麺でわりと好みだが、スープはちょっと豚骨の匂い、、、慣れれば美味しいのかな。

夕暮れグリッチ

そしたらベンジーあたしをグリッチで殴って

import base64,re
from random import randint

jpgfile = "/Users/kzfm/orig.jpg"
jpg_text = base64.encodestring(open(jpgfile,"rb").read())
glitched_text = ""
for c in jpg_text:
    if c == '0':
        glitched_text += str(randint(0,9))
    else:
        glitched_text += c
glitched_jpg = base64.decodestring(glitched_text)
open("glitched.jpg","wb").write(glitched_jpg)

1256026704

Jpeg においては DCT を施すために如何なる入力画像も 8x8 画素のブロックに分割されるらしいのでbase64エンコーディングしたのをいじってデコードすると8x8のブロックの単位でノイズが混じるっていう理解でいいのか。

参考

ProductName 無罪モラトリアム
椎名林檎
EMIミュージック・ジャパン / ¥ 3,059 (1999-02-24)
在庫あり。