数类型不匹配错误
问题描述:
我必须学会大会为我的大学,我必须这样做:数类型不匹配错误
(a+b+c+1) *(a+b+c+1) /((a-b+d)*(a-b+d)).
当我尝试创建一个使用“TASM”命令的exe文件,我得到这个消息:
**Error** lab1.ASM(14) Operand types do not match
**Error** lab1.ASM(15) Operand types do not match
**Warning* lab1.ASM(30) Open segment:Data
这里是我的代码:
assume cs:code,ds:data
data segment
a db 1
b db 2
c db 3
d db 4
code segment
start:
mov ax,data
mov ds,ax
mov al,a
mov ah,0
add ax,b ;ax=a+b
add ax,c ;ax=a+b+c
add ax,1 ;ax=a+b+c+1
mov bx,ax ;bx=ax
mul bx ;dx:ax=(a+b+c+1) *(a+b+c+1)
mov al,a
mov ah,0
sub al,b ; al=a-b
add al,d ; al=a-b+d
mov bl,al ; bl=al
mul bl ; ax=(a-b+d)*(a-b+d)
mov bx,ax
div bx ; dx:ax :bx =(a+b+c+1) *(a+b+c+1) /((a-b+d)*(a-b+d))
mov ax,4c00h
int 21h
code ends
end start
答
AX
是字的大小; A
和B
是字节大小。
观察你没有同样的问题,后来在你来自哪里,AL
例如减去B
代码(包括字节大小)
这是不完全清楚“你需要做的是什么”,也不清楚你的错误信息涉及哪些行。 –