소스 검색

Fix gitignore typo

rexim 5 년 전
부모
커밋
26bc1e1231
2개의 변경된 파일41개의 추가작업 그리고 0개의 파일을 삭제
  1. 2 0
      mmx/.gitignore
  2. 39 0
      mmx/main.asm

+ 2 - 0
mmx/.gitignore

@@ -0,0 +1,2 @@
+main
+*.o

+ 39 - 0
mmx/main.asm

@@ -0,0 +1,39 @@
+%define SYS_EXIT 60
+
+segment .data
+src:   db 15, 1, 15, 1, 15, 1, 15, 1
+shift: db 13, 13, 13, 13, 13, 13, 13, 13
+cap:   db 25, 25, 25, 25, 25, 25, 25, 25
+cap0:  db 26, 26, 26, 26, 26, 26, 26, 26
+
+segment .text
+global _start
+
+rot13_8b:
+    movq mm0, rax
+    movq mm1, [shift]
+    paddb mm0, mm1
+    movq mm2, mm0
+    movq rax, mm0
+
+    movq mm1, [cap]
+    pcmpgtb mm0, mm1
+    movq rax, mm0
+
+    movq mm1, [cap0]
+    pand mm0, mm1
+    movq rax, mm0
+
+    psubb mm2, mm0
+    movq rax, mm2
+    ret
+
+_start:
+    mov rax, [src]
+    call rot13
+    call rot13
+
+    mov rax, SYS_EXIT
+    mov rdi, 0
+    syscall
+    ret