Hello, I was just wondering if it is possible to create a data struct in assembly 8086. For example, creating a struct that holds a student's name and ID number.

It is somewhat helpful, but I don't want to code structs in c++, I was wondering if you could literally code structs in assembly language (8086)

Creating a data structure in 8086 assembler is as simple as declaring
any other data variables.

MYVAR1 DB 0 ; an 8-bit quantity

FAR_OFF DW 0 ; a 32-bit far pointer
FAR_SEG DW 0

; Now for the mentioned data structure
StudentId DW 0 ; this is also the address of the structure
StudentName DB ? DUP(64) ; Create 64-byte Character Array For Name

also some assemblers provide a STRUCT directive

STRUCT MyStruct
 StudentId DW ?
 StudentName DB ? DUP(64)
END STRUCT

Declare an instance of the structure and then you should be
able to refer to it's members by name and create other
instances.

Edited 5 Years Ago by NotNull: Additional info, the STRUCT directive.

how we can pass use that struct into external methods. i mean what if we invoke the method . how we can pass the struct?

allright. if i pass addr. of StudentId can i say assume ebx:ptr StudentId and then use other fields myStruct.studentName etc.
by the way 8086

If you had a pointer to StudentID and you wished to reference StudentName, you'd just have to add the size of StudentID to your pointer, then your pointer would be pointing at StudentName

This article has been dead for over six months. Start a new discussion instead.