| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 909 人关注过本帖
标题:关于汇编的数组问题
只看楼主 加入收藏
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
结帖率:86.67%
收藏
已结贴  问题点数:20 回复次数:2 
关于汇编的数组问题
请问,我定义如下数组
buf db 21,32,125,225,42,12,64,25,97,255

那我在程序中应该如何调用啊???(可以的话能够列出全部的调用方法,谢谢!)
在这里我讲一下自己网上查找之后的成果
 我找了很久也就看到 buf[si]之类的调用,但是不怎么明白。。。
搜索更多相关主题的帖子: 汇编 
2009-10-24 10:55
莫云今次
Rank: 3Rank: 3
来 自:浙江
等 级:论坛游侠
帖 子:385
专家分:166
注 册:2009-3-18
收藏
得分:2 
用si 指向 buf ,也就是lea  si,buf,要调用第一个就是[si],第二个就是[si+1]如此下去······
2009-10-24 17:17
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:18 
这个是最基本的数据寻址概念。

8086/8088有7种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接
寻址,寄存器相对寻址,基址加变址寻址方式,相对基址加变址寻址。
 
1   立即数寻址
     操作数就在指令中,作为指令的一部分,跟在操作码后存放在代码段。
        mov ah,01h
        mov ax,1204h  
     ;如果立即数是16位的,则高地址放在高位,低地址放在低位
                  
2   寄存器寻址
     操作数在寄存器中,指令中指定寄存器号。对于8位操作数,寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH。 对于16位操作数,寄存器可以是AX,BX,CX,DX,BP,SP,SI,DI等
        mov ah,ch
        mov bx,ax
                  
3   直接寻址方式
     操作数在存储器中,指令直接包含操作数的有效地址EA。
        mov ax,[1122h]   ;将ds:1122的数据放在ax,默认段为DS
        mov es:[1234],al ;采用了段前缀
                  
4   寄存器间接寻址
     操作数在存储器中,操作数的有效地址在SI,DI,BX,BP这4个寄存器之一中。在不采用段前缀的情况下, 对于DI,SI,BX默认段为DS,而BP为SS。
        mov ah,[bx]
        mov ah,cs:[bx] ;使用了段前缀
                  
5   寄存器相对寻址
     操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)或变址寄存器(SI,DI)的内容加上8位或16位的位移之和。在指令中的8位和16位的常量采用补码表示,8位要被带符号扩展为16位。
        mov ah,[bx+6];段址默认情况与寄存器间接寻址相同
                  
6   基址加变址寻址
              操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)加上变址寄存器(SI,DI)的
              内容。如果有BP,则默认段址为SS,否则为DS.
        mov ah,[bx+si]
               
7   相对基址加变址寻址
    操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)和变址寄存器(SI,DI)的内容加上8位或16位的位移之和。如果有BP,则默认段址为SS,否则为DS.
    mov ax,[bx+di-2]
    mov ax,1234h[bx][di]

以上摘自杨季文教授 80x86 教程。我只举一例,其他的你自己领会:

  寄存器寻址 为例:

你的代码 buf db 21,32,125,225,42,12,64,25,97,255

寻址为  mov ax,offset buf             ;数据偏移地址放入ax
        mov al,byte ptr[ax]           ;用ax寄存器寻址、访问数据。

[ 本帖最后由 东海一鱼 于 2009-10-25 10:26 编辑 ]

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-10-25 10:19
快速回复:关于汇编的数组问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044937 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved