Advertisement
Guest User

Untitled

a guest
Dec 1st, 2019
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. use16
  2. org 0x7c00
  3. main:
  4.     jmp 0x0:entry
  5. entry:
  6.     mov sp, 0
  7.     mov ss, sp
  8.    
  9.     mov bx, hello_message
  10.     call write_message
  11.  
  12.     jmp load_tail
  13.     jmp $
  14.  
  15. hello_message:
  16.     db 'Hello ', 0
  17. recalibration_message:
  18.     db 'Recalibrating ', 0
  19. shit_happened_message:
  20.     db 'Shit happened ', 0
  21.  
  22. load_tail:
  23.     mov bx, recalibration_message
  24.     call write_message
  25.  
  26.     mov ah, 00h
  27.     mov dl, 00h
  28.     int 013h
  29.     jc load_tail
  30.     mov ah, 02h
  31.     xor al, 1
  32.     xor ch, ch
  33.     mov cl, 2
  34.     xor dh, dh
  35.     mov di, system
  36.     mov es, di
  37.     xor bx, bx
  38.     int 013h
  39.     jnc system
  40.     mov bx, shit_happened_message
  41.     push
  42.     call write_message
  43.     call print_floppy_error
  44.     jmp $
  45.  
  46.  
  47. print_floppy_error:
  48.     mov ah, 01h
  49.     int 013h
  50.  
  51.     mov al, ah
  52.     ror al, 4
  53.     and al, 0Fh
  54.     call print_hex
  55.  
  56.     mov al, ah
  57.     and al, 0Fh
  58.     call print_hex
  59.     return:
  60.         ret
  61.  
  62. print_hex:
  63.     cmp al, 9
  64.     ja add_65
  65.     add_60:
  66.         add al, 030h
  67.         jmp print
  68.     add_65:
  69.         add al, 040h
  70.         sub al, 10
  71.     print:
  72.     call print_char
  73.     ret
  74.  
  75. print_char:
  76.     mov ah, 0Eh
  77.     int 010h
  78.     ret
  79.  
  80.  
  81. write_message:
  82.     mov ah, 0Eh
  83.    ;xor bh, bh
  84.     start:
  85.         mov al, [bx]
  86.         or al, al
  87.         jz end
  88.         push bx
  89.         xor bx, bx
  90.         int 10h
  91.         pop bx
  92.         inc bx
  93.         jmp start
  94.     end:
  95.     ret
  96.  
  97. gdtr:
  98.     dw 0, 0
  99.     dw 0, 0
  100.  
  101.     dw 0FFFFh, 0000h
  102.     db 0h, 09Ah, 0C0h, 0
  103.  
  104.     dw 0FFFFh, 0000h
  105.     db 0h, 092h, 0CFh, 0  
  106.  
  107. padding:
  108.     times 510-$+$$ db 0
  109.     db 055h
  110.     db 0AAh
  111.  
  112. system:
  113.     mov bx, second_hello_message
  114.     call write_message
  115.  
  116. second_hello_message:
  117.     db 'Second hello', 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement