我必须为我的大学学习装配,我需要这样做:
(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
答案 0 :(得分:0)
var areBugsOn = false;
function toggleBugs(){
if(areBugsOn){
end();
areBugsOn = false;
}else{
initialize();
areBugsOn = true;
}
}
是字大小的; <{1}}和AX
是字节大小。
请注意,您稍后会在代码中从A
中减去B
时遇到同样的问题(两个字节大小)