Проблема с циклами в защищенном режиме

Тема в разделе "WASM.BEGINNERS", создана пользователем TolyProg, 6 апр 2020.

  1. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    можно короче si
     
  2. TolyProg

    TolyProg New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2020
    Сообщения:
    16
    0x0000000007fad7c2 -- здесь, судя по всему jnz ?keyboard
    0x0000000007fad7b2 -- здесь, судя по всему метка ?keyboard
    --- Сообщение объединено, 6 апр 2020 ---
    Странно, если прописать si 9999, то экран мигать не будет, но стоит continue -- мигает.
     
  3. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    так это к бабке нужно . она отгадает.
    А нам бы весь листинг с адресами (хотя бы регион листинга) .
    Ну и да - понимаете тут мало кто будет запускать ваш код . Если у кого время будет - те возьмутся. Без изучения всего кода - это гадание на гуще.
    Если вы пишите свою ось вы должны четко понимать - что делаете.
    У меня сложилось впечатление, что вы еще не разобрались. По-изучайте еще денек другой, с отладчиком по-привыкните работать. Авось наступит озарение )
     
    Mikl___ нравится это.
  4. TolyProg

    TolyProg New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2020
    Сообщения:
    16
    Я hyx'ом открыл бинарник моей оси(тут помимо ядра еще и бутлодер)
    Код (Text):
    1. [code]0000: b8 03 00 cd 10 b4 42 be 6c 7c b2 80 cd 13 72 3b fa 0f 01 16 9c 7c e4 92 0c 02 e6 92 0f 20 c0 0c 01 0f 22 c0 ea 29 7c 08 00 66 b8 10 00 8e d8 8e |......B.l|....r;.....|....... ...."..)|..f......|
    2.  
    3. 0030: c0 b0 02 b9 1e 00 00 00 b6 00 b2 00 be a2 7c 00 00 e8 0d 02 00 00 e9 b5 01 00 00 66 b8 01 13 66 bd 66 7c b2 24 b6 0a 66 b9 06 00 66 bb 04 00 cd |..............|............f...f.f|.$..f...f....|
    4.  
    5. 0060: 10 e9 2d 02 00 00 45 72 72 6f 72 21 10 00 04 00 00 7e 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 |..-...Error!.....~..............................|
    6.  
    7. 0090: 00 9a cf 00 ff ff 00 00 00 92 cf 00 17 00 84 7c 00 00 7b 4f 4b 7d 20 50 72 6f 74 65 63 74 65 64 20 6d 6f 64 65 20 61 63 74 69 76 61 74 65 64 21 |...............|..{OK} Protected mode activated!|
    8.  
    9. 00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    10.  
    11. 00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    12.  
    13. 0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    14.  
    15. 0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    16.  
    17. 0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    18.  
    19. 01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    20.  
    21. 01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa fb b6 01 e8 35 00 00 00 b0 09 b9 0f 00 00 00 b6 |..............................U.....5...........|
    22.  
    23. 0210: 01 b2 05 be e5 7e 00 00 e8 36 00 00 00 e8 79 00 00 00 b0 03 b9 01 00 00 00 b6 03 b2 05 be ae 7e 00 00 e8 1c 00 00 00 eb 5a eb 7e eb 7c b0 02 b9 |.....~...6....y................~........Z.~.|...|
    24.  
    25. 0240: 05 00 00 00 b2 00 be e0 7e 00 00 e8 03 00 00 00 c3 eb 66 66 50 66 52 89 c8 b9 02 00 00 00 f7 e1 89 c1 b8 00 00 00 00 66 5a bf 00 80 0b 00 b0 02 |........~.........ffPfR................fZ.......|
    26.  
    27. 0270: f6 e2 01 c7 b8 00 00 00 00 b0 a0 f6 e6 01 c7 66 58 88 c4 ac aa 88 e0 aa 83 f9 00 74 03 49 e2 f3 c3 eb 26 fa f4 eb fe eb 20 eb 1e b8 00 00 00 00 |...............fX..........t.I....&..... .......|
    28.  
    29. 02a0: e4 60 a8 80 75 f5 a2 ae 7e 00 00 c3 eb 0b 00 eb 08 eb 06 eb 04 eb 02 eb 00 fb bf 00 80 0b 00 be f4 7e 00 00 b0 0c b9 46 00 00 00 88 c4 ac aa b0 |.`..u...~........................~.....F........|
    30.  
    31. 02d0: 0c aa 83 f9 00 74 03 49 e2 f3 fa f4 eb fe eb d9 3c 4f 4b 3e 20 4b 65 72 6e 65 6c 20 77 6f 72 6b 69 6e 67 21 46 61 74 61 6c 20 65 72 72 6f 72 2e |.....t.I........<OK> Kernel working!Fatal error.|
    32.  
    33. 0300> 20 53 79 73 74 65 6d 20 68 61 6c 74 65 64 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | System halted..................................|
    34.  
    35. 0330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    36.  
    37. 0360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    38.  
    39. 0390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    40.  
    41. 03c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    42.  
    43. 03f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    44.  
    45. 0420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    46.  
    47. 0450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    48.  
    49. 0480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    50.  
    51. 04b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    52.  
    53. 04e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    54.  
    55. 0510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    56.  
    57. 0540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    58.  
    59. 0570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    60.  
    61. 05a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    62.  
    63. 05d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    64.  
    65. 0600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    66.  
    67. 0630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    68.  
    69. 0660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    70.  
    71. 0690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    72.  
    73. 06c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    74.  
    75. 06f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    76.  
    77. 0720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    78.  
    79. 0750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    80.  
    81. 0780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    82.  
    83. 07b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    84.  
    85. 07e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    86.  
    87. 0810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    88.  
    89. 0840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    90.  
    91. 0870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    92.  
    93. 08a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    94.  
    95. 08d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    96.  
    97. 0900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    98.  
    99. 0930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    100.  
    101. 0960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    102.  
    103. 0990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    104.  
    105. 09c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................................................|
    106.  
    107. 09f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                                                                                                                                                                                                     |................|
    108.  
    109.  
    --- Сообщение объединено, 7 апр 2020 ---
    А загрузчик загружает ядро по аддресу 7e00h
    --- Сообщение объединено, 7 апр 2020 ---
    https://stackoverflow.com/questions...ected-mode-after-bootloader/37288606#37288606
    Из этого я только gdt кривую сделал(то есть взял с кого-то сайта, не понимаю gdt) и сделал jmp 0x8:@prmode, вот код в загрузчике, который переходит в protected mode:
    Код (Text):
    1. cli ; Disable interrupts
    2.  
    3. lgdt [@gdtr] ; Load GDT
    4.  
    5. in al,0x92 ; Turn on A20 allow addressing over 1M, up to 4 GB
    6. or al,2
    7. out 0x92,al
    8.  
    9. mov eax,cr0 ; Turn on PE bit in CR0 (I.e. turn on protected mode)
    10. or al,1
    11. mov cr0,eax
    12.  
    13. jmp 0x8:@promode ; Initialize cs by this jump. 32 bit instructions will be after that
    14.  
    15. use32 ; Generate 32 bit code
    16. @promode:
    17. mov ax,10h ; Assign ds and es the data segment
    18. mov ds,ax
    19. mov es,ax
    20.  
    21. Тут код, который не влияет на переход в protected mode
    22.  
    23. @gdt:         ; Address for the GDT
    24. @gdt_null:    ; Null Segment
    25. dq 0
    26.  
    27. @gdt_kernel:  ; Kernel segment, read/execute, nonconforming
    28. dw 0FFFFh
    29. db 0,0,0
    30. db 10011010b
    31. db 11001111b
    32. db 0
    33.  
    34. @gdt_data:    ; Data segment, read/write, expand down
    35. dw 0FFFFh
    36. db 0,0,0
    37. db 10010010b
    38. db 11001111b
    39. db 0
    40.  
    41. @gdtr:
    42.     dw @gdtr-@gdt_null-1
    43.     dd @gdt
    --- Сообщение объединено, 7 апр 2020 ---
    Ну само собой еще линию A20 включил и в регистр cr0 значение защищенного режима запихнул
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    не надо так. откройте статьи по защищенному режиму брокенсворда и почитайте. И сами напишите код. С пониманием

    Offtop:/
    Странная мода пошла. Копипастить не разбираясь, а потом уже думать почему не работает.
    Зачем вообще такая ос которая уже даже не самописная, а сборная солянка из стековерфлоу.
     
  6. TolyProg

    TolyProg New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2020
    Сообщения:
    16
    Извините, не могу их найти
    Потому, что я в некоторых штуках не могу разобраться, т.к. не силен в нетсталкинге, например в GDT и в IDT. Вот на вашем сайте я нашел статью: https://wasm.in/blogs/preryvanija-v-zaschischennom-rezhime-processora-ia-32.466/ но она мало что дает, т.к. я не знаю значения вот этой штуки: syscall_handler, возможно в начале исходного стоит что-то вроде syscall_handler equ 0x26f21, а исходный код потерялся, т.к. ссылка на него не действительна, и ее нет на web archive
     
  7. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    https://wasm.in/blogs/processor-intel-v-zaschischennom-rezhime-1.201/
    это одна из 13 статей .
    Изучайте их по порядку.

    А что мешает вам взять документацию Intel ?
     
  8. TolyProg

    TolyProg New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2020
    Сообщения:
    16
    TermoSINteZ, спасибо!
    Я смотрел документацию intel, и ничего не понял :dntknw:
     
  9. НетРегистрации

    НетРегистрации Member

    Публикаций:
    0
    Регистрация:
    1 фев 2020
    Сообщения:
    72
    https://wasm.in/blogs/processor-intel-v-zaschischennom-rezhime-1.201/
    Цитата:
    "Главная причина, побудившая меня к созданию данной рассылки – полное отсутствие русскоязычной более мене толковой документации и учебной литературы о PM."
    А вот это: В.Л. Григорьев. Микропроцессор i486. Архитектура и программирование. (в 4-х книгах). – М.: ГРАНАЛ, 1993. Чем не подходит? Может есть где .pdf, у меня печатное.
     
  10. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.553
    Адрес:
    Russia
    НетРегистрации, видимо автор посчитал ее бестолковой ) а может и не знал о ней.
     
  11. TolyProg

    TolyProg New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2020
    Сообщения:
    16