어셈블리어 컴파일러가 안되는데요...
현재 제가 masm 6.11 컴파일러로 아래의 1번 코드를 컴파일 했는데요...
2번 코드는 컴파일이 안되더라구요
어떤 컴파일러를 사용해야 하나요??
(windowXP를 사용합니다.)
***********************************
1번 코드
***********************************
.386P ; Priviledged instructions can be used.
; The following segments are expected by Microsoft's CL compiler.
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
; Put all segment directives into one single group (flat memory model).
GFLAT GROUP _TEXT, _DATA, CONST, _BSS
ASSUME CS: GFLAT, DS: GFLAT, ES: GFLAT, SS: GFLAT
_TEXT SEGMENT
;-----------------------------------------------------------------------
; OSTickISR
;-----------------------------------------------------------------------
PUBLIC _OSTickISR
EXTRN _OSIntEnter:NEAR
EXTRN _OSTimeTick:NEAR
EXTRN _OSIntExit:NEAR
_OSTickISR PROC NEAR
pushad
; Send an end-of-interrupt to the i8259.
mov al,20h
out 20h,al
; Standard uCOS processing.
call _OSIntEnter
call _OSTimeTick
call _OSIntExit
popad
iretd
_OSTickISR ENDP
***********************************
2번 코드
***********************************
.text
.global FloppyMotorOn
.global FloppyMotorOff
.global initializeDMA
.global initializeDMAWrite
.global FloppyCode
.global ResultFhase
.extern floppy_handler
.global floppy_isr
.align 4
floppy_isr:
cli
pushl %fs
pushl %es
pushl %ds
pushl %eax
pushl %ebp
pushl %edi
pushl %esi
pushl %edx
pushl %ecx
pushl %ebx
cld
call floppy_handler
popl %ebx
popl %ecx
popl %edx
popl %esi
popl %edi
popl %ebp
popl %eax
popl %ds
popl %es
popl %fs
sti
iret
FloppyMotorOn:
pushl %edx
pushl %eax
movb $0x1c, %al
movw $0x3f2, %dx
outb %al, %dx
popl %eax
popl %edx
ret
2번은 GAS 스타일인거
2번은 GAS 스타일인거 같습니다만...
------
Emerging the World!
Emerging the World!
댓글 달기