首页 > 编程语言 >汇编-数据结构

汇编-数据结构

时间:2023-11-30 14:33:05浏览次数:25  
标签:汇编 student1 mov STUDENT DWORD 数据结构 ID esi

 

 

 
.386  
.model flat,stdcall 
option casemap:none
.stack 4096
 
 include windows.inc

 ExitProcess PROTO,dwExitCode:DWORD    
 
 STUDENT struct   ;自定义数据结构
name DWORD ?
ID DWORD ?
STUDENT ends



.data   
 
 stwndclass WNDCLASS <>  ;末初始化
 stwndclass1 WNDCLASS <1,1,1,1,1,1,1,1,1,1>  ;初始化
  student1 STUDENT <>
   
.code  
 

 
main PROC   
    
    ;方法一
    mov student1.ID ,01h    ;访问结构成员

    ;方法二:指针法访问结构
    mov esi, offset student1  ;结构对象地址给esi
    mov ebx,[esi+STUDENT.ID]   ;注意:不是tudent1.ID

    ;方法三:
    mov esi, offset student1  ;结构对象地址给esi
    assume esi:ptr STUDENT    ;把寄存器esi定义为结构指针
    mov ecx,[esi].ID
    assume esi:nothing        ;取消定义

 
    INVOKE ExitProcess,0  
main ENDP   
END main  

 

 

 

 

 

标签:汇编,student1,mov,STUDENT,DWORD,数据结构,ID,esi
From: https://www.cnblogs.com/liming19680104/p/17867278.html

相关文章

  • 数据结构与算法分析(荣政)953 指定教材
    前言953官方指定教材数据结构与算法分析(荣政)绪论数据元素是数据的基本单位数据项是数据的最小单位数据结构:二元组(D,R),D是数据,R是关系,可考判断题,混淆D和R的含义数据结构包含三部分逻辑结构存储结构在逻辑和存储结构上进行的操作抽象数据类型包含三部分逻辑结构:线性和......
  • 汇编指令长度计算
    汇编指令长度计算1、无操作数指令没有操作数的指令,指令长度为1字节。如es:ds:cbwxlat2、操作数只涉及寄存器操作数只涉及寄存器的指令,指令长度为2字节。如moval,[si]movax,[bx+si]movds,ax3、操作数涉及内存地址的指令操作数涉及内存......
  • Golang-常见数据结构实现原理
    chan 1.chan数据结构 src/runtime/chan.go:hchan定义了channel的数据结构:typehchanstruct{qcountuint//当前队列中剩余元素个数dataqsizuint//环形队列长度,即可以存放的元素个数bufunsafe.Pointer//环形队列指针......
  • NET 元组(Tuple)数据结构
    .NET中的元组(Tuple)是一种数据结构,用于将多个不同类型的值组合成单个复合值。这使得你可以在没有创建专门的类或结构体的情况下,从方法中返回多个值,或者在多个部分之间传递一组值。.NET提供了两种主要的元组类型:System.Tuple类这是.NETFramework4.0中引入的早期元组类型。......
  • 汇编--简单的子程序调用
    目录前言程序要求思路十进制转二进制二进制转十六进制代码实现数据段定义十进制转二进制子程序运行结果二进制转十六进制子程序运行结果main程序前言本文将以十进制转二进制以及二进制转十进制为例,展示汇编子程序的基本语法。程序要求使用两个子程序,定义一个变量a=156,一个8......
  • 数据结构【1】
    数据结构【1】1、数据结构是什么,有什么作用​ 数据结构就是存储数据时,将数据排列的关系。​ 使用数据结构的目的是为了使数据的增删查改更快速便捷。2、数据之间的关系:​ 集合、线性、树形、图形(网状)。​ 集合之间的数据基本没有什么关系。​ 线性关系是数据间是一条线或......
  • 汇编-标号
      1.标号的定义 当在程序中使用一条跳转指令的时候,可以用标号来表示跳转的目的地,编译器在编译的时候会把它替换成地址,标号既可以定义在目的指令同一行的头部,也可以在目的指令前行单独用一行定义,标号定义的格式是:标号名:目的指令  ;方法1或标号名::目的指令   ;方......
  • 汇编-MessageBoxA消息框
     .386.modelflat,stdcall.stack4096ExitProcessPROTO,dwExitCode:DWORDMessageBoxAPROTO:DWORD,:DWORD,:DWORD,:DWORD.datalptextBYTE"消息",0lpcaptionBYTE"标题",0.codemainPROCinvokeMessageBoxA,0,OFFSETlptext,OFFSET......
  • 汇编div的注意
    无符号除法32位模式下,DIV(无符号除法)指令执行8位、16位和32位无符号数除法,结果以余数和商的方式表现。格式如下:DIV8位寄存器或内存DIV16位寄存器或内存DIV32位寄存器或内存被除数除数商余数AXreg/mem8ALAHDX:AXreg/mem16AXDXEDX:EAXreg/mem32EAXEDX根据以上表格可......
  • 在visual studio反汇编得出的函数之间的一些管旭
    非裸函数执行过程002018D1push3002018D3push2002018D5push1//将三个数压入栈中002018D7callstd::basic_ostreamchar,std::char_traits<char>::sentry::sentry(0201497h)002018DCaddesp,0Ch//ebp表示栈底,esp表示栈顶,前面三个数将esp减去了0x0C,现在需要加上0......