汇编入门问题
我做了个很简陋的编译器,生成的代码不能运行,请问是什么问题? 谢谢!!
.386
.model flat,stdcall
option casemap:none
.data
.code
start:
mov ebx , 45
mov eax , ebx
mov ebx , 0
mov [ebx] , eax
;-------------0
mov ebx , 11
mov eax , ebx
mov ebx , 4
mov [ebx] , eax
;-------------1
mov ebx , [4]
mov eax , ebx
mov ebx , 14
cmp eax , ebx
jnl L4
;-------------2
jmp L8
;-------------3
L4:
mov ebx , [4]
mov eax , ebx
mov ebx , [0]
cmp eax , ebx
jz L6
;-------------4
jmp L8
;-------------5
L6:
mov ebx , 23
mov eax , ebx
mov ebx , 4
mov [ebx] , eax
;-------------6
jmp L20
;-------------7
L8:
mov ebx , [0]
mov eax , ebx
mov ebx , 22
cmp eax , ebx
jle L10
;-------------8
jmp L13
;-------------9
L10:
mov ebx , 67
mov eax , ebx
mov ebx , 8
mov [ebx] , eax
;-------------10
mov ebx , 6
mov eax , ebx
mov ebx , 0
mov [ebx] , eax
;-------------11
jmp L20
;-------------12
L13:
mov ebx , [0]
mov eax , ebx
mov ebx , 5
cmp eax , ebx
jl L15
;-------------13
jmp L17
;-------------14
L15:
mov ebx , 78
mov eax , ebx
mov ebx , 16
mov [ebx] , eax
;-------------15
jmp L18
;-------------16
L17:
mov ebx , 34
mov eax , ebx
mov ebx , 12
mov [ebx] , eax
;-------------17
L18:
mov ebx , 67
mov eax , ebx
mov ebx , 12
mov [ebx] , eax
;-------------18
mov ebx , 11
mov eax , ebx
mov ebx , 0
mov [ebx] , eax
;-------------19
L20:
mov ebx , 123
mov eax , ebx
mov ebx , 8
mov [ebx] , eax
;-------------20
end start
用得是RADASM编译环境,是CONSOLE APP模式,可以正常编译,但是一运行就报错
源码是
int a,b,c;
a=45;
b=11;
if(b>=14&&b==a)
{
b=23;
}
else if(a<=22)
{
int d;
c=67;
a=6;
}
else
{
int e;
if(a<5)
{
int f;
f=78;
}
else
{
int g;
g=34;
}
e=67;
a=11;
}
c=123;