DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Assembly (http://www.daniweb.com/forums/forum125.html)
-   -   Assemblers won't assemble!! (http://www.daniweb.com/forums/thread101637.html)

Queatrix Dec 18th, 2007 1:30 pm
Assemblers won't assemble!!
 
I have tried to assemble the following code in TASM and Flat Assembler, but they both give an error for every line of code. What is going on? How can I get the assemblers to assemble the * code?? Thanks for any help you can provide.
[BITS 16]
[ORG 0]

jmp start

        bootdrv        db 0
        bootmsg        db 'Boot Sector Example',13,10,0

        rebootmsg    db 'Press any key to reboot',13,10,0

        processormsg        db 'Checking for 386+ processor: ',0
        need386        db 'Sorry... 386+ required!',13,10,0
        found386        db 'Found!',13,10,0

        whatever        db 'Now we insert our code here to do something, and we have an OS!',13,10,0

        detect_cpu:
                mov si, processormsg
                call message

                pushf
               
                xor ah,ah
                push ax
                popf
               
                pushf
                pop ax           
                and ah,0f0h
                cmp ah,0f0h
                je no386

                ; check for a 286 (bits 12-15 are clear)
                mov ah,0f0h
                push ax
                popf
               
                pushf
                pop ax
                and ah,0f0h
                jz no386
                popf
               
                mov si, found386
                call message
               
                ret
        no386:
                mov si,need386
                call message
                jmp reboot

        message:
                lodsb
                or al,al
                jz done
                mov ah,0eh
                mov bx,0007
                int 0x10
                jmp message
        done:
                ret

        getkey:
                mov ah, 0
                int 016h
                ret

        reboot:
                mov si, rebootmsg
                call message
                call getkey

                db 0EAh

                dw 0000h
                dw 0FFFFh
               
start:
        mov ax,0x7c0
        mov ds,ax
data

        mov [bootdrv], dl

        cli
        mov ax,0x9000
        mov ss,ax
        mov sp,0xffff
        sti
       
        mov si,bootmsg
        call message

        call detect_cpu

.386

        mov si,whatever
        call message
        call getkey
       
        call reboot

        times 510-($-$$) db 0
        dw 0xAA55

Duoas Dec 18th, 2007 1:49 pm
Re: Assemblers won't assemble!!
 
You have failed to use the proper directives to organize your code and data. Please read TASM's documentation.

I should note also that you've got some pretty egregious errors there, particularly when calling and not returning.

Hope this helps.

Queatrix Dec 18th, 2007 5:56 pm
Re: Assemblers won't assemble!!
 
I see, after really looking through it, I got rid of some errors, and it took care of the rest.


All times are GMT -4. The time now is 10:16 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC