鱼C论坛

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

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

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

汇编中结构体声明
  1. MyStruct struct
  2.         m_Flag db ?
  3.         m_Name db 12 dup(?)
  4.         m_Phone db 12 dup(?)
  5. MyStruct ends
复制代码



定义结构体数组
  1.         StuInfoAry MyStruct 50 DUP(<>)
复制代码



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

我刚学习刚的一章刚好讲解到!

  1. assume cs:code
  2. code segment
  3. s1        db 'Good,better,best,','
  4. s2        db 'Never let it rest,','
  5. s3        db 'Till good is better,','
  6. s4        db 'And better,best.','
  7. s        dw offset s1,offset s2,offset s3,offset s4
  8. row        db 2,4,6,8

  9. start:
  10.         mov ax,cs
  11.         mov ds,ax
  12.         mov bx,offset s
  13.         mov si,offset row
  14.         mov cx,4
  15. ok:        mov bh,0
  16.         mov dh,[si]                ;行数
  17.         mov dl,0
  18.         mov ah,2
  19.         int 10h
  20.        
  21.         mov dx,[bx]                ;每一段的句子
  22.         mov ah,9
  23.         int 21h
  24.         inc si                ;行数自加
  25.         add bx,2       
  26.         loop ok
  27.         mov ax,4c00h
  28.         int 21h
  29. code ends
  30. end start
复制代码

最佳答案

查看完整内容

我刚学习刚的一章刚好讲解到!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

我刚学习刚的一章刚好讲解到!

  1. assume cs:code
  2. code segment
  3. s1        db 'Good,better,best,','
  4. s2        db 'Never let it rest,','
  5. s3        db 'Till good is better,','
  6. s4        db 'And better,best.','
  7. s        dw offset s1,offset s2,offset s3,offset s4
  8. row        db 2,4,6,8

  9. start:
  10.         mov ax,cs
  11.         mov ds,ax
  12.         mov bx,offset s
  13.         mov si,offset row
  14.         mov cx,4
  15. ok:        mov bh,0
  16.         mov dh,[si]                ;行数
  17.         mov dl,0
  18.         mov ah,2
  19.         int 10h
  20.        
  21.         mov dx,[bx]                ;每一段的句子
  22.         mov ah,9
  23.         int 21h
  24.         inc si                ;行数自加
  25.         add bx,2       
  26.         loop ok
  27.         mov ax,4c00h
  28.         int 21h
  29. code ends
  30. end start
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

又或者利用offset运算符,跳转到它们的偏移地址执行。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

可否举个例子
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

把你现在的代码发出来
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-5 09:11:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 09:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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