TASM-ассемблер

Тема в разделе "WASM.ASSEMBLER", создана пользователем phobos__, 11 май 2010.

  1. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Уважаемые форумчане! Не подскажете как перевести эту директиву из проги на Fasm - в TASM формат:
    times (510-($-7C00h)) db 0?
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.787
    phobos__
    db (510-($-7C00h)) dup (0)
    Как-то так...
     
  3. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Не, так уже пробовал, пишет "Can't subtract dissimular relative quantities":dntknw:
     
  4. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Ты загрузчик пишеш?
    Добавь в начало метку и используй её вместо 7C00h
    Типа
    db (510-($-offset LoaderStart)) dup(0)
    Просто $ - это относительное смещение, а 7C00h - это константа.
    А тебе надо два смещения вычесть.
     
  5. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Да, я пишу загрузчик.Спасибо cppasm, помогло, но программа все равно не заработала!
     
  6. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Этото загрузчик работает на FASM(с небольшими изменениями,вызванными разными сигнатурами исходников разных ассемблеров),проверял с помощью VM Ware, а на TASM что-то никак.
    Помогите, пожалуйста, найти ошибки!
    Код (Text):
    1. model small
    2. .code
    3. .stack 100h
    4. org 7C00h
    5. b:
    6. jmp Beginning ;
    7. nop ;
    8. db 'bootsect' ; вот они - 8 байт
    9. SectSize dw 00200h
    10. ClustSize db 001h
    11. ResSecs dw 00001h ;
    12. FatCnt db 002h
    13. RootSiz dw 000E0h
    14. TotSecs dw 00B40h
    15. Media db 0F0h
    16. FatSize dw 00009h
    17. TrkSecs dw 00012h
    18. HeadCnt dw 00002h
    19. HidnSec dw 00000h
    20.  
    21. Beginning: ;
    22. cli ; mov ax, cs
    23. mov ds, ax
    24. mov es, ax
    25. mov ss, ax
    26. mov sp, 7c00h
    27. sti
    28.  
    29. xor ax,ax
    30. mov es,ax
    31. mov bx,7e00h
    32. mov ah,02h
    33. mov al,8
    34. xor dx,dx
    35. mov ch,00000000b
    36. mov cl,2
    37. int 13h
    38.  
    39. jmp Main_Program
    40.  
    41. times db (510-($-offset b)) dup ()
    42.  
    43. db 055H,0AAH
    44.  
    45.  
    46. org 07e00h
    47. Main_Program:
    48. bed:
    49.   mov ax,0003h
    50.   int 10h
    51.  
    52.  
    53.  
    54.     mov ax,DGROUP
    55.     mov es,ax
    56.     mov bp,offset m1
    57.     mov ah,13h
    58.     mov al,00000001b
    59.     mov cx,14
    60.     mov dx,0
    61.     mov bl,00011111b
    62.     int 10h   ;тут просто надо вывести строку
    63.  
    64.  
    65. cli
    66. hlt
    67. jmp short $
    68.  
    69. .data
    70. m1 db "Hello from the world of real programming!!!",'$' ;0x0A,0x0D,0
    71. end b
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.787
    phobos__
    используй тэги [code] и[/code]
     
  8. phobos__

    phobos__ New Member

    Публикаций:
    0
    Регистрация:
    11 май 2010
    Сообщения:
    16
    Что-то не понял.Можно поподробней?
     
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.787
    Для отображения исходного кода чего-либо используйте тег code. Текст, отмеченный этим тегом, передаётся в неизменённом виде.

    [code]Это текст, который я хочу отобразить как код.[/code]

    будет отображено как:
    Код (Text):
    1. Это текст, который я хочу отобразить как код.