汇编入门问题

hurrican6 2009-02-24 04:40:55
我做了个很简陋的编译器,生成的代码不能运行,请问是什么问题? 谢谢!!
.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;
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hurrican6 2009-02-25
  • 打赏
  • 举报
回复
知道了,谢谢!
hurrican6 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 BAYNPU 的回复:]
请楼主参考这本书:Intel汇编语言程序设计书本(第四版)
[/Quote]
我刚刚下完大概看了下,但是我实在是有点急
.386
.model small
data segment
Buffer dd 64 dup (?)
data ends
.code
mov ax,seg Buffer
mov ds,ax
我用这么写在CONSOLE APP模式下,RADASM就说我" mov ax,seg Buffer "这句话symbol type conflict
我实在是很困惑,一般书上介绍WIN32下的汇编都是系统指令调用啊。困惑啊。
BAYNPU 2009-02-24
  • 打赏
  • 举报
回复
请楼主参考这本书:Intel汇编语言程序设计书本(第四版)
hurrican6 2009-02-24
  • 打赏
  • 举报
回复
汇编,简单的说就是WIN32环境下的可以给DS赋值吗?怎么赋值?我想把.DATA的段地址赋值给DS寄存器
BAYNPU 2009-02-24
  • 打赏
  • 举报
回复
又是汇编语言,又是C语言,到底哪个呢?
hurrican6 2009-02-24
  • 打赏
  • 举报
回复
就是如何把.DATA的段地址赋值给DS寄存器??

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧