Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
rdksoft
22 / 22 / 6
Регистрация: 24.12.2008
Сообщений: 81
1

Файл не компилируется

13.06.2009, 16:15. Просмотров 1113. Ответов 5
Метки нет (Все метки)

Может кто объяснить почему этот кусок кода nasm 2.0.5 не компилит
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
[BITS 16]
[ORG 0x700]
 
    ;; Загрузим в сегментные регистры 0 и установим стек
 
    cli 
    mov ax, 0
    mov ds, ax
    mov es, ax
    mov ss, ax
    mov sp, 0x700
    sti
    
    ;; Выведем приветствие на экран
    mov si, msg_intro
    call kputs
 
    ;; Сообщение о том, что собираемся в PM
    mov si, msg_entering_pmode
    call kputs
 
    ;; Отключим курсор, чтобы не мозолил глаза
    mov ah, 1
    mov ch, 0x20
    int 0x10
 
    ;; Установим базовый вектор контроллера прерываний в 0x20
    mov al,00010001b 
    out 0x20,al 
    mov al,0x20 
    out 0x21,al 
    mov al,00000100b 
    out 0x21,al
    mov al,00000001b    
    out 0x21,al 
 
    
    ;; Отключим прерывания
    cli
    
    ;; Загрузка регистра GDTR:  
    lgdt [gd_reg]
 
    ;; Включение A20: 
    in al, 0x92
    or al, 2
    out 0x92, al
 
    ;; Установка бита PE регистра CR0
    mov eax, cr0 
    or al, 1    
    mov cr0, eax  
 
    ;; С помощью длинного прыжка мы загружаем
    ;; селектор нужного сегмента в регистр CS
    ;; (напрямую это сделать нельзя)
    jmp 0x8: _protected
 
 
    ;; Эта функция вывода строки работает
    ;; в реальном режиме!
    ;; (использует прерывание 0x10 BIOS)
kputs:
    pusha
.loop:
    lodsb
    test al, al
    jz .quit
    mov ah, 0x0e
    int 0x10
    jmp short .loop
.quit:
    popa
    ret
 
 
    ;; Следующий код - 32-битный
[BITS 32]
    ;; Сюда будет передано управление
    ;; после входа в PM
_protected: 
    ;; Загрузим регистры DS и SS селектором
    ;; сегмента данных
    mov ax, 0x10
    mov ds, ax
    mov es, ax
    mov ss, ax
 
    ;; Наше ядро (kernel.bin) слинковано по адресу 2мб
    ;; Переместим его туда
 
    ;; kernel_binary - метка, после которой
    ;; вставлено ядро
    ;; (фактически - его линейный адрес)
    mov esi, kernel_binary
 
    ;; адрес, по которому копируем
    mov edi, 0x200000
 
 
    ;; Размер ядра в двойных словах
    ;; (65536 байт)
    mov ecx, 0x4000
 
    ;; Поехали :)
    rep movsd
 
    ;; Ядро скопировано, передаем управление ему
    jmp 0x200000
 
 
gdt:
    dw 0, 0, 0, 0   ; Нулевой дескриптор
 
    db 0xFF     ; Сегмент кода с DPL=0 
    db 0xFF     ; Базой=0 и Лимитом=4 Гб 
    db 0x00
    db 0x00
    db 0x00
    db 10011010b
    db 0xCF
    db 0x00
    
    db 0xFF     ; Сегмент данных с DPL=0
    db 0xFF     ; Базой=0 и Лимитом=4Гб 
    db 0x00 
    db 0x00
    db 0x00
    db 10010010b
    db 0xCF
    db 0x00
 
 
    ;; Значение, которое мы загрузим в GDTR:    
gd_reg:
    dw 8192
    dd gdt
 
        
msg_intro:  db "Secondary bootloader received control", 0x0A, 0x0D, 0
msg_entering_pmode: db "Entering protected mode...", 0x0A, 0x0D, 0
kernel_binary:  
    incbin 'kernel.bin'
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2009, 16:15
Ответы с готовыми решениями:

TASM: не компилируется файл
Turbo Assembler Version 5.0 Copyright (c) 1988, 1996 Borland International начал изучать...

Не компилируется асм-файл
Здравствуйте, знатоки! Я только начал знакомство с ассемблером. Скачал fasm, tasm и masm. Работаю...

Заголовочный файл, который компилируется в VS2017, не компилируется в Qt
В общем был класс "Матрицы", который нормально работал в VS2017. Возникла необходимость...

Не компилируется файл
В чем ошибка? Вот код: import java.io.*; class MainClass{ File f = new File("/",...

Компилируется не тот файл.
Привет всем ребята подскажите пожалуста.Я набираю в CodeBlocks самую простенькую программу.Он...

5
rdtsc
7 / 7 / 0
Регистрация: 20.08.2008
Сообщений: 44
15.06.2009, 23:09 2
как ты компилишь?
У меня все скоомпилиось nasm 1.asm -fbin -l 1.lst -o 1.com
0
rdksoft
22 / 22 / 6
Регистрация: 24.12.2008
Сообщений: 81
16.06.2009, 21:04  [ТС] 3
а куда это всё вставлять то?в make .bat?
а то у меня чтото ничяё не получаеться
0
rdtsc
7 / 7 / 0
Регистрация: 20.08.2008
Сообщений: 44
16.06.2009, 23:41 4
это же просто команда.. бат - командый файл..можешь запустить консоль и там ее выполнить, а можешь в батник, хоть make.bat, хоть vinipux.bat неважно
0
Paulie
Айхрень...
306 / 175 / 7
Регистрация: 02.06.2009
Сообщений: 1,078
17.06.2009, 14:20 5
Я не вдавался в параметры командной строки ml, но я делаю так, в переменную среды Path добавляю путь c:\masm32\bin и далее (после перезагрузки, конечно) открываю командную строку, перехожу в каталог с исходным кодом и компилю так:
ml /c test.asm
link16 /t test.asm

ключ /t - компиляция ДОС-файла test.com

можно проще, если нужен 32х разрядный ехе-шник:
ml /AT test.asm
1
rdksoft
22 / 22 / 6
Регистрация: 24.12.2008
Сообщений: 81
17.06.2009, 15:49  [ТС] 6
Messir1987, спс чел проблема была не в компиляторе а в настройках , нужно было тупо прописать в переменные среды насм огромное спасибо)
0
17.06.2009, 15:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2009, 15:49

Не компилируется файл PyInstaller
Хочу скомпилировать файл но выдается ошибка "line 1 SyntaxError: Non-UTF-8 code starting with...

Graphics.h | Не компилируется файл
Есть такой вопрос. Поставил DEVC++, делаю прогу(игру). Короче делать надо на graphics.h. Не...

Не компилируется программа: не найден файл
не видит SDL.h поставил соответсвующий пакет. лежит она в usr/include/SDL вот подскажите, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru