Advertisement
Guest User

Untitled

a guest
Mar 28th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. EXIT_NR = 1
  2. READ_NR = 3
  3. WRITE_NR = 4
  4. STDOUT = 1
  5. STDIN = 0
  6. EXIT_CODE_SUCCESS = 0
  7.  
  8. input_len=4096
  9. output_len=1
  10.  
  11. .global _start
  12.  
  13. .data
  14. space: .byte ' ;
  15.  
  16. .bss
  17. .comm input, 512
  18. .comm output_high, 1
  19. .comm output_low, 1
  20.  
  21.  
  22. .text
  23.  
  24. _start:
  25.  
  26. mov $READ_NR, %eax
  27. mov $STDIN, %ebx
  28. mov $input, %ecx
  29. mov $input_len, %edx
  30. int $0x80
  31.  
  32. mov %eax,%edi
  33. mov $0,%esi
  34.  
  35. loop:
  36.  
  37. mov input(%esi),%ah
  38. mov input(%esi),%al
  39.  
  40. shrb $4,%ah
  41. cmpb $0x0A, %ah
  42. jge ah_wieksze_od_10
  43.  
  44. addb $0x30,%ah
  45. jmp po_ah
  46.  
  47. ah_wieksze_od_10:
  48. addb $0x37,%ah
  49.  
  50. po_ah:
  51.  
  52. andb $0x0F,%al
  53.  
  54. cmpb $0x0A, %al
  55. jge al_wieksze_od_10
  56.  
  57. addb $0x30,%al
  58. jmp po_al
  59.  
  60. al_wieksze_od_10:
  61. addb $0x37,%al
  62.  
  63. po_al:
  64.  
  65. movb %ah, output_high
  66.  
  67. movb %al, output_low
  68.  
  69. mov $WRITE_NR, %eax
  70. mov $STDOUT, %ebx
  71. mov $output_high, %ecx
  72. mov $output_len, %edx
  73. int $0x80
  74.  
  75. mov $WRITE_NR, %eax
  76. mov $STDOUT, %ebx
  77. mov $output_low, %ecx
  78. mov $output_len, %edx
  79. int $0x80
  80.  
  81. mov $WRITE_NR, %eax
  82. mov $STDOUT, %ebx
  83. mov $space, %ecx
  84. mov $output_len, %edx
  85. int $0x80
  86.  
  87. inc %esi
  88.  
  89. cmp %esi,%edi
  90. jne loop
  91.  
  92.  
  93. mov $EXIT_NR , %eax
  94. mov $EXIT_CODE_SUCCESS, %ebx
  95. int $0x80
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement