Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text
  2. .globl _start
  3. _start:
  4.     # используем printf и используем соглашение о вызове
  5.     mov $msg1, %rdi
  6.     call printf
  7.     mov $clrf, %rdi
  8.     call printf
  9.     mov $msg2, %rdi
  10.     call printf
  11.     mov $clrf, %rdi
  12.     call printf
  13.     mov $str1, %rdi
  14.     call printf
  15. #
  16.     mov $lstr1, %rcx
  17.     mov $str1, %rsi
  18.     mov $str2, %rdi
  19. 3:
  20.     # movsb
  21.     # lodsb - загружает в al, stosb загружает его в нужное место
  22.     lodsb
  23.     cmp $0x41, %al
  24.     jb 1f
  25.     cmp $0x5a, %al
  26.     ja 1f
  27.     add $0x20, %al
  28.     jmp 2f
  29. 1:
  30.     cmp $0x61, %al
  31.     jb 2f
  32.     cmp $0x7a, %al
  33.     ja 2f
  34.     sub $0x20, %al
  35. 2:
  36.     stosb
  37.     loop 3b
  38. #
  39.     mov $str2, %rdi
  40.     call printf
  41.     pop %rbp
  42.  
  43.     mov $60, %rax
  44.     syscall
  45.  
  46. .data
  47. clrf:
  48.         .byte  0xa, 0
  49. str1:   .asciz "This Is A String!\n"
  50. lstr1 = . - str1
  51. str2:   .fill 150, 1, 0
  52. msg1:
  53.         .asciz "1234"
  54. msg2:
  55.         .quad 0x31323334
  56.         .byte 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement