巴厘岛脏鸭餐厅:这段汇编哪错了????

来源:百度文库 编辑:高校问答 时间:2024/05/06 09:02:06
好象是3 12 14 行有错

DATA SEGMENT
STR1 DB 'How are you?',0DH
STR2 DB 'NUM=',?,$
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV AX,DATA
MOV DS,AX
MOV AL,0
LEA DI,STR1
L1: CMP [DI],20H
JZ L2
CMP [DI],0DH
JZ L3
INC DI
L2: INC AL
INC DI
JMP L1
L3: ADD AL,30H;
LEA DI,STR2
ADD DI,4;
MOV [DI],AL
LEA DX,STR2
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END

DATA SEGMENT
STR1 DB 'How are you?',0DH
STR2 DB 'NUM=',?,'$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV AX,DATA
MOV DS,AX
MOV AL,0
LEA DI,STR1
L1: CMP [DI],WORD PTR 20H
JZ L2
CMP [DI],WORD PTR 0DH
JZ L3
INC DI
L2: INC AL
INC DI
JMP L1
L3: ADD AL,30H;
LEA DI,STR2
ADD DI,4;
MOV [DI],AL
LEA DX,STR2
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END

错误:

行3: $是一个字符,所以要用''括起来;

行12: MASM认为20h为一个字节, 而DI是一个字,类型
不一致,所以MASM给出警告, 加上WORD ptr 就可以将
20H设为一个字了;

行14: 错误同上

同意楼上老兄的看法