错误:解析器:指令预期

时间:2012-03-06 12:11:46

标签: assembly x86 nasm multiplying

NASM没有在我的程序的printstr子程序中解析命令'mull byte [bp + 10]'。我已经使用讲座说明重新检查了代码,并且无法解释为什么会这样做。此外,当直接(32位win7)或通过dosbox执行时,它不会在屏幕或清除屏幕上显示任何内容。

    [org  0x100]
jmp start

message:        db  'hello world'
length:         dw  11

clr:        push es
            push ax
            push di

            mov ax, 0xb800
            mov es, ax
            mov di, 0           
   nxt:     mov word[es:di], 0x0720
            add di,2
            cmp di,4000
            jne nxt
            pop di
            pop ax
            pop es
            ret

printstr:           push bp
            mov bp,sp
            push es
            push ax
            push cx
            push si
            push di

            mov ax, 0xb800
            mov es, ax
            mov al, 80
            mull byte [bp+10]
            add ax, [bp+12]
            shl ax, 1
            mov di, al
            mov si, [bp+6]
            mov cx, [bp+4]
            mov ah, [bp+8]

nextchar:           mov al, [si]
            mov [es:di], ax
            add di, 2
            add si, 1
            loop nextchar

            pop di
            pop si
            pop cx
            pop ax
            pop es
            pop bp
            ret 10

start:      call clr
            mov ax, 30
            push ax
            mov ax, 20
            push ax
            mov ax, 1
            push ax
            mov ax, message
            push ax
            push word [length]
            call printstr

            mov ax, 0x4c00
            int 0x21

1 个答案:

答案 0 :(得分:0)

根据reference mul而不是mull