Help Please: Display Ascii table in assembler, recieving errors

Discussion in 'Assembly Language Programming (ALP) Forum' started by anan18, Apr 6, 2008.

  1. anan18

    anan18 New Member

    Joined:
    Apr 6, 2008
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Hello all, I have tried vigoriously and cannot find out what this means, this homework is due tommorow and i need major help, basicalyl what we have to do is write an ascii table which pops up on the screen, i have this code thus far but i get the following error messages:

    1>Assembling...
    1> Assembling: .\main.asm
    1>.\main.asm(371) : warning A4023: with /coff switch, leading underscore required for start address : start
    1>Linking...
    1>main.obj : fatal error LNK1190: invalid fixup found, type 0x0001
    1>Build log was saved at "file://c:\Irvine\examples\Project_sample\Debug\BuildLog.htm"
    1>Project - 1 error(s), 1 warning(s)
    ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

    this is my project

    assume cs:code

    code segment 'code'
    ORG 100h

    .386
    Code:
    start: jmp MY_START
    
    ; beginning of data section 
    BUFFER dw 2000 dup(?)
    string db "D H B C",0
    
    ; end of data section 
    MY_START:
    
    mov ax,0B800h
    mov es,ax
    call SCREEN_SAVER
    M1: call SCREEN_CLEARER
    call L0_95
    
    check1:
    mov ah,10h
    int 16h
    
    cmp ax, 1071h
    je EXIT
    
    cmp ax, 4DE0h
    je M2
    
    jmp check1
    
    
    M2: call SCREEN_CLEARER
    call L96_191
    
    check2:
    mov ah,10h
    int 16h
    
    cmp ax,4BE0h
    je M1
    
    cmp ax,4DE0h
    je M3
    
    cmp ax,1071h
    je EXIT
    
    jmp check2
    
    
    M3: call SCREEN_CLEARER
    call L192_255
    
    check3:
    mov ah,10h
    int 16h
    
    cmp ax,4BE0h
    je M2
    
    cmp ax,1071h
    je EXIT
    
    jmp check3
    
    
    EXIT:
    call SCREEN_RESTORER
    jmp REAL_EXIT
    
    SCREEN_SAVER:
    mov cx,2000
    mov bx,0
    L1:
    mov ax,es:[bx]
    mov BUFFER[bx],ax
    add bx,2
    loop L1
    ret
    
    SCREEN_CLEARER:
    mov ax,1720h
    mov cx,2000
    mov bx,0
    L2:
    mov es:[bx],ax
    add bx,2
    loop L2
    ret
    
    SCREEN_RESTORER:
    mov cx,2000
    mov bx,0
    L3:
    mov ax,BUFFER[bx]
    mov es:[bx],ax
    add bx,2
    loop L3
    ret
    
    
    L0_95: 
    mov si,6
    mov cx,4
    
    C1A:mov al,string[0]
    mov es:[si],al
    mov al,string[2]
    mov es:[si+6],al
    mov al,string[4]
    mov es:[si+24],al
    mov al,string[6]
    mov es:[si+28],al
    add si,40
    loop C1A
    
    mov si,122
    mov bx,0
    mov cx,4
    C1B:push cx
    mov cx,24
    add si,40
    C1C:push cx
    call DEC_CONVERT
    add si,2
    call HEX_CONVERT
    add si,2
    call BIN_CONVERT
    add si,2
    call CHAR_CONVERT
    inc bx
    add si,126
    pop cx
    loop C1C
    pop cx
    sub si,3840
    loop C1B
    
    ret
    
    L96_191:
    mov si,6
    mov cx,4
    
    C2A:mov al,string[0]
    mov es:[si],al
    mov al,string[2]
    mov es:[si+6],al
    mov al,string[4]
    mov es:[si+24],al
    mov al,string[6]
    mov es:[si+28],al
    add si,40
    loop C2A
    
    mov si,122
    mov bx,96
    mov cx,4
    C2B:push cx
    mov cx,24
    add si,40
    C2C:push cx
    call DEC_CONVERT
    add si,2
    call HEX_CONVERT
    add si,2
    call BIN_CONVERT
    add si,2
    call CHAR_CONVERT
    inc bx
    add si,126
    pop cx
    loop C2C
    pop cx
    sub si,3840
    loop C2B
    
    ret 
    
    L192_255:
    mov si,6
    mov cx,4
    
    C3A:mov al,string[0]
    mov es:[si],al
    mov al,string[2]
    mov es:[si+6],al
    mov al,string[4]
    mov es:[si+24],al
    mov al,string[6]
    mov es:[si+28],al
    add si,40
    loop C3A
    
    mov si,122
    mov bx,192
    mov cx,4
    C3B:push cx
    mov cx,16
    add si,40
    C3C:push cx
    call DEC_CONVERT
    add si,2
    call HEX_CONVERT
    add si,2
    call BIN_CONVERT
    add si,2
    call CHAR_CONVERT
    inc bx
    add si,126
    pop cx
    loop C3C
    pop cx
    sub si,2560
    loop C3B
    
    ret
    
    DEC_CONVERT:
    mov ax,bx
    mov cx,-1
    mov dx,-1
    
    D1: inc cx
    sub ax,100
    jge D1
    
    
    D2: push cx
    add cl,'0'
    mov es:[si],cl
    add si,2
    mov ax,bx
    
    pop cx
    cmp cx,1
    jl D4
    
    D3: sub ax,100
    add dx,10
    loop D3
    
    D4: mov cx,-1
    
    D5: inc cx
    inc dx
    sub ax,10
    jge D5
    
    D6: add cl,'0'
    mov es:[si],cl
    add si,2
    mov ax,bx
    
    mov cx,dx
    
    D7: sub ax,10
    loop D7
    
    D8: add al,'0'
    mov es:[si],al
    add si,2
    
    ret
    
    HEX_CONVERT:
    mov al,bl
    shr al,4;
    call HEX_PRINT
    
    mov al,bl
    and al,00001111b
    call HEX_PRINT
    
    ret
    
    HEX_PRINT:
    cmp al, 10
    jl HP1
    je HP2
    
    cmp al,11
    je HP3
    
    cmp al,12
    je HP4
    
    cmp al,13
    je HP5
    
    cmp al,14
    je HP6
    
    cmp al,15
    je HP7
    
    HP1:add al,'0'
    mov es:[si],al
    add si,2
    jmp HP8
    
    HP2:mov al,'A'
    mov es:[si],al
    add si,2
    jmp HP8
    
    HP3:mov al,'B'
    mov es:[si],al
    add si,2
    jmp HP8
    
    HP4:mov al,'C'
    mov es:[si],al
    add si,2
    jmp HP8
    
    HP5:mov al,'D'
    mov es:[si],al
    add si,2
    jmp HP8
    
    HP6:mov al,'E'
    mov es:[si],al
    add si,2
    jmp HP8
    
    HP7:mov al,'F'
    mov es:[si],al
    add si,2
    
    HP8:ret
    
    BIN_CONVERT:
    mov al,bl
    mov cx,8
    B1:
    test al, 10000000b
    je B2
    mov ah,'1'
    mov es:[si],ah
    add si,2
    shl al,1
    loop B1
    jmp B3
    
    B2:
    mov ah,'0'
    mov es:[si],ah
    add si,2
    shl al,1
    loop B1
    
    B3:
    ret
    
    CHAR_CONVERT:
    mov al,bl
    mov es:[si],al
    add si,2
    ret
    
    REAL_EXIT:
    mov ah,4Ch
    int 21h
    
    code ends
    end start
     
    Last edited by a moderator: Apr 7, 2008

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice