zoukankan      html  css  js  c++  java
  • 2.汇编语言--masn代码基本结构、数值概念、位运算

     代码基本结构:

    ; .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(){} 函数

     数值的概念

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

    1kb = 1024b = 8192B

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

    位运算

  • 相关阅读:
    响应式开发
    css3的2D和3D的转换
    前端CSS3笔记
    DOM精简版笔记
    JS进阶
    linux 修改时间同步到BIOS
    linux-设置代理和取消代理
    linux-rpm强制安装跳过依赖包
    [linux] VNC the connection was refused by the computer
    Linux vim 常用命令(不定时update)
  • 原文地址:https://www.cnblogs.com/trevain/p/14497496.html
Copyright © 2011-2022 走看看