2.汇编语言--masn代码基本结构、数值概念、位运算

摘要:
基本代码结构:586指令集分号是注释586;在MODEL之后,添加内存模式flat和语言模式stdcall+其他模式(不能使用);调用约定平面内存使用stdcall:win32.MODELflat,stdcall;includelib+中包含的静态库lib,链接库系统apiincludelibuser32.libincludelibkernel32.lib;系统apiExitProcess返回

 代码基本结构:

; .586 指令集 分号是注释
.586

; MODEL 后面加 内存模式flat 和语言模式stdcall +其他模式(可以没有)
; 调用约定 flat内存使用方式  stdcall:win32  
.MODEL flat, stdcall

;includelib +包含的静态库lib,链接库 系统api
includelib user32.lib
includelib kernel32.lib

; 系统api ExitProcess 退出进程  MesageBoxA:弹出消息窗口  PROTO 伪指令
ExitProcess PROTO, dwExitCode : DWORD
MessageBoxA PROTO hwnd : DWORD, lpText : BYTE, lpCaption : BYTE, uType :DWORD

;大小写不敏感
option casemap:none

;上面都是头,下面是段

; 段 .data:数据段,可读可写已经定义的变量,已经初始化,已经储存在.data内存区段里面   
;.data?:未初始化的数据段,未定义的变量,储存在缓冲区,不会增大exe文件的大小
;  .const: 常量数据段,可读不可写,其实吧一般都不用直接定义在.data里面
;  .code:代码数据段,可执行的代码都在这里  .stack:堆栈段,现在没必要写了,系统会自己申请
.data
Number DWORD 0
text db "shellcode",0
.code
; main 是我们自己配置的代码入口点,不叫main也可以 需要告诉编辑器,在链接器高级里面指定的入口点 main
; proc 是函数的意思
main proc
        mov eax,5
        mov ebx,6
        add eax,ebx
        add eax,Number
        push 0
        push offset text
        push offset text
        push 0
        call MessageBoxA
        add esp,16
        call ExitProcess
main ENDP
;end 结束 main

;主函数起始位置
END main
;相当于 int main(){} 函数

 数值的概念

2.汇编语言--masn代码基本结构、数值概念、位运算第1张

度量单位                  c语言里面
基本数据度量单位:
1BYTE(字节)=8BIT(比特) 相当于一个字符chat
WORD=2BYTE=16BIT 短整型
DWORD=4BYTE        整型
QWORD=8BYTE

1kb = 1024b = 8192B

取值范围:
BYTE = 有符号:-128到127 无符号:0到255

位运算

2.汇编语言--masn代码基本结构、数值概念、位运算第2张

免责声明:文章转载自《2.汇编语言--masn代码基本结构、数值概念、位运算》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇传统的SOA是否已经过时百度图标echarts.js的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IE首页被恶意篡改的十二种解决方法

浏览网页时,很容易出现造成注册表被修改,使得IE默认连接首页、标题栏及IE右键菜单被改为浏览网页时的地址(多为广告信息),更有甚者使浏览者的电脑在启动时出现一个提示窗口显示自己的广告,而且有愈演愈烈之势,遇到这种情况我们该怎样办呢? 一、注册表被修改的原因及解决办法 其实,该恶意网页是含有有害代码的ActiveX网页文件,这些广告信息的出现是因为浏览者的...

程序破解之 API HOOK技术 z

API HOOK,就是截获API调用的技术,在程序对一个API调用之前先执行你的函数,然后根据你的需要可以执行缺省的API调用或者进行其他处理,假设如果想截获一个进程对网络的访问,一般是几个socket API : recv,recvfrom, send, sendto等等,当然你可以用网络抓包工具,这里只介绍通过API HOOK的方式来实现, 主要原理是...

【转】EVC /PB /WinCE开发问题

1. 在ce自制平台中如何添加自己的驱动?cec文件和reg,bib文件有何区别?看混了,不知道如何才能让驱动注册到平台中。另外,reg和bib是我在编写驱动必须要自己写的么 CE 的驱动分为本机驱动和流驱动,本机驱动你可以修改源码(在%_WINCEROOT%/PUBLIC/COMMON/OAK/DRIVERS),然后 build驱动源码,之后用PB编译...

reg文件编写规则

reg文件编写规则 首先新建一个文本文档,并将文件后缀的.txt改为.reg,然后右键编辑,这样就可以开始编写注册表文件了。 分号(;)后面的内容是注释,导入时会忽略这些内容。 文件的开头 Windows Registry Editor Version 5.00。并与后面的内容隔一行,文件最后还要有一个回车。 新建一个项: [HKEY_LOCAL_MACH...

MFC录制音频和播放音频

一、录制音频   在windows中提供了相应的API函数(waveIn这个族的函数)实现录音功能;在使用这些函数时,一定要引入相应的头文件 #include <windows.h> #include <Mmsystem.h> #pragram comment(lib, "Winmm.lib") 1、在开始录音之前,需要首先定义音频...

汇编语言——寄存器(内存访问 ds数据段寄存器)

在内存中字的存储 这段话的主要意思是:一个字=2B=16bit,CPU中是用两个内存单元储存一个字(假如获取0地址存放的字型数据,就是获取它的高位字节0+1位和低位字节0位的数据,数据由高地址位向低地址位读) 问题: (1)0地址单元中存放的字节型数据是多少?  #  20H(2)0地址字单元中存放的字型数据是多少?  # 4e20H(3)2地址字单元中...