回 帖 发 新 帖 刷新版面

主题:汇编的结构

问题:mov [bx+si].student.sname,dx怎么理解?
提示:student是我定义的结构体
student  struc
sname    db  10 dup(' '),'$'
masm     db  ?
age      dw  ?
student  ends

在数据段中我定义了 一个
array student 100 dup(<>)
;是保存学生的信息的总节,array是一个有 100个student的数组
在 代码段
有lea   bx,array
  xor   si,si
我想输入  ‘名字’到dx
然后把dx赋给数组中第si个student结构的sname?
这样对 吗


或者你们有 什么 更好的办法?说说
谢谢@!!!!

急!
在等。。。。。。。。。。

回复列表 (共3个回复)

沙发

当然不对,你不能用 mov 实现一个 db 10 变量的移动啊。

而且,dx 也不能储存这么长的数据,除非是指针,如果是指针,那么你的结构体里 sname 定义就错了。

板凳

多谢!上楼的答复
我 想输入sname的头地址dx保存到我定义的array,100个 数组中
在我想输出的时候通过array就 可以输出


能否讲详细点啊

多谢!!

3 楼

问题:mov [bx+si].student.sname,dx怎么理解?

bx 结构数组的指针, 
si 数组索引
[bx+si].student.snam 就是
[bx+si+student.snam]  ;student.snam是结构中元素的偏移值
---------------------------------
sname    db  10 dup(' '),'$'
因为sname 是字符数组,所以应该一个字节一个字节地 保存字符。

我来回复

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