汇编中的ASSUME的使用 您所在的位置:网站首页 汇编伪指令的作用及功能 汇编中的ASSUME的使用

汇编中的ASSUME的使用

#汇编中的ASSUME的使用| 来源: 网络整理| 查看: 265

assume 最典型的用法:是指明变量与段寄存器的联系,比如 assume ds:data,它是告诉编译器以后所有在data段中定义的变量寻址时,使用ds作为段地址,但是它不对程序作任何事,比如你必须自己对ds赋值,这也就是为什么dos下典型的汇编段如下:

.data   ........ .code   ........   assume cs:code,ds:data start: .......   mov ax,data   mov ds,ax   ... ends end start

它也经常用来将寄存器当作结构体指针来用

ASSUME edx:ptr STRUCT ;将edx 定义为STRUCT指针变量 把STRUCT结构体的起始地址给edx lea edx, STRUCT ;用 [edx].调用STRUCT的字段 ASSUME edx:nothing ;取消定义 这个时候edx 不是指针 [edx].不能调用字段了

实例: 参见《Windows PE权威指南》

BookStrore STRUCT   Name db 8 dup(8);书库的名字   Address dd ? ;书库所在地址   Count dd ? ;书库中藏书量 BookStrore ENDS name1 db "书库1",0 lib1 BookStrore move ebx ,lib1 assume ebx:ptr BookStrore; invoke memcpy,[ebx].Name,add name1 (此处跟书上有略微不同) mov eax,12345h mov [ebx].Address ,eax; mov eax, 2 mov [ebx].Count, eax assume ebx:nothing


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有