鱼C论坛

 找回密码
 立即注册
查看: 3072|回复: 5

[已解决]结构体数组应该怎么访问

[复制链接]
发表于 2020-4-4 22:52:55 | 显示全部楼层 |阅读模式
90鱼币
以下为在8086汇编中使用

汇编中结构体声明
MyStruct struct
        m_Flag db ?
        m_Name db 12 dup(?)
        m_Phone db 12 dup(?)
MyStruct ends


定义结构体数组
        StuInfoAry MyStruct 50 DUP(<>)


那么问题来了,请问怎么访问某个下标中的某个成员呢,烦请指导以下,感谢
最佳答案
2020-4-4 22:52:56

我刚学习刚的一章刚好讲解到!
assume cs:code
code segment
s1        db 'Good,better,best,','
s2        db 'Never let it rest,','
s3        db 'Till good is better,','
s4        db 'And better,best.','
s        dw offset s1,offset s2,offset s3,offset s4
row        db 2,4,6,8

start:
        mov ax,cs
        mov ds,ax
        mov bx,offset s
        mov si,offset row
        mov cx,4
ok:        mov bh,0
        mov dh,[si]                ;行数
        mov dl,0
        mov ah,2
        int 10h
        
        mov dx,[bx]                ;每一段的句子
        mov ah,9
        int 21h
        inc si                ;行数自加
        add bx,2        
        loop ok
        mov ax,4c00h
        int 21h
code ends
end start

最佳答案

查看完整内容

我刚学习刚的一章刚好讲解到!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-4 22:52:56 | 显示全部楼层    本楼为最佳答案   

我刚学习刚的一章刚好讲解到!
assume cs:code
code segment
s1        db 'Good,better,best,','
s2        db 'Never let it rest,','
s3        db 'Till good is better,','
s4        db 'And better,best.','
s        dw offset s1,offset s2,offset s3,offset s4
row        db 2,4,6,8

start:
        mov ax,cs
        mov ds,ax
        mov bx,offset s
        mov si,offset row
        mov cx,4
ok:        mov bh,0
        mov dh,[si]                ;行数
        mov dl,0
        mov ah,2
        int 10h
        
        mov dx,[bx]                ;每一段的句子
        mov ah,9
        int 21h
        inc si                ;行数自加
        add bx,2        
        loop ok
        mov ax,4c00h
        int 21h
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-4 23:04:08 | 显示全部楼层
可以用字节来跳转;
假如想访问 m_Phone,那么就从第13个字节开始访问。

又或者利用offset运算符,跳转到它们的偏移地址执行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-4 23:29:38 | 显示全部楼层
项羽姓秦 发表于 2020-4-4 23:04
可以用字节来跳转;
假如想访问 m_Phone,那么就从第13个字节开始访问。

可否举个例子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-4 23:49:17 | 显示全部楼层

把你现在的代码发出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-5 09:11:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-1 09:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表