回 帖 发 新 帖 刷新版面

主题:5555  学了几周汇编了  还是没有入门(已经解决)

汇编真的是很难入门啊  都开了几周课了 还是一点都不懂  希望大家帮我解释一些入门级别的问题

代码段是这样的 

DATA   SEGMENT
BUF    DB 'HOW ARE YOU!'
DATA   ENDS


其中数据段有个句子是这样

LEA DX,BUF

请大家解释一下 这两个句子  主要是代码段那个

回复列表 (共38个回复)

沙发

啊  没有人帮我解释啊 。。。。。。。。。。
请大家帮帮我啊  
BUF    DB 'HOW ARE YOU!'
这句话是什么意思 啊

板凳

代码段开始,结尾都是SEGMENT和ENDS
例如:
DataSegment  SEGMENT
Message  DB  ‘Hello !’
DataSegment  ENDS
中间一句的意思是将字符串'HOW ARE YOU!'赋给BUF,或将‘Hello !’赋给Message
LEA DX,BUF
是将BUF的地址写入DX

3 楼


4 楼

谢谢zyxdna兄的解释  但我的问题不是这个

我知道是将字符串'HOW ARE YOU!'赋给BUF   

主要是DB  这个DB 书上面的解释是  定义字节类型,其后每个操作数都占有一个字节
这是什么意思   难道是'HOW ARE YOU!' 这句话定义为一个字节的大小并且赋值给BUF??  是这样吗

5 楼

主要是DB  这个DB 书上面的解释是  定义字节类型,其后每个操作数都占有一个字节
这是什么意思   难道是'HOW ARE YOU!' 这句话定义为一个字节的大小并且赋值给BUF??  是这样吗

HOW ARE YOU!
这里指的是H占一个字节,O占一个字节,以此类推,W占一个字节,空格占一个字节
它是将这个字符串的地址传入BUF,
所以BUF就是一个字节类型的指针量
晕,我怎么说到C语言了
不知道你有没有学过C语言呢
在C语言中
int表示字节类型
int BUF="HOW ARE YOU!"
和这就是同样的意思
BUF里的值就是H
BUF+1里的值就是O
BUF+2里的值就是W

6 楼

这里还涉及到寻址方式方面的知识
不知道LZ学了没?

"……",引号内的东西表示的是字符串。在内存中是以字节存放的。

建议LZ去看看基础的东西

还有LEA是汇编指令。最好也顺便去熟悉下指令系统,这对学习汇编有好处。

7 楼

再次谢谢你的答复   我没学过C语言的  
听你的意思好象BUF 是 H这个字节的地址  然后下一个地址单元是O字节   再下一个地址单元是W字节  .......依次类推  是这样的吗

8 楼


寻址方便的知识 我都在书上面看了几遍了  但总感觉到了实际的例子当中就看不出来了    兄弟能帮我解释下吗  就这个当作例子   谢谢!!

9 楼

[quote]再次谢谢你的答复   我没学过C语言的  
听你的意思好象BUF 是 H这个字节的地址  然后下一个地址单元是O字节   再下一个地址单元是W字节  .......依次类推  是这样的吗[/quote]
是的
这些知识各种语言都是相似或一致的

10 楼



STACK    SEGMENT STACK
DB       200 DUP(0)
STACK    ENDS
DATA     SEGMENT
BUF      DB 'HOW ARE YOU!'
DATA     ENDS
CODE     SEGMENT
         ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN:   MOV   AX,DATA
         MOV   DS,AX
         LEA   DX,BUF
         MOV   AH,9
         INT   21H
         MOV   AH,4CH
         INT   21H
         CODE  ENDS
END BEGIN


这个就是我的教科书上面的例子
我看不懂  但我知道这个是生成EXE程序的源程序格式
堆栈段为什么要下面这句话呢?
DB       200 DUP(0)
这是重复定义200个数据0   每个0占一个字节 ? 是这样吗?
这段代码有什么用    为什么这个地方是200?  


MOV   AX,DATA
MOV   DS,AX

这个是把数据段的地址送给DS吧   我在书上面看了 数据段和附加段需要这样

MOV   AH,9  这个有什么用呢?

还有
MOV   AH,4CH
INT   21H   这个是结束程序的代码吧    但这个代码之前也有一个INT   21H
这又有什么用呢  

哎   一下子问了这么多问题有点乱 请你帮我解释下好吗?  谢了

我来回复

您尚未登录,请登录后再回复。点此登录或注册