zoukankan      html  css  js  c++  java
  • 汇编语言-环境搭建(32位)

    一 系统环境

      win7 旗舰版 x86_64

    二 安装IDE

      RadASM.v2.2.1.9.cao_cong

    三 MASM中的一些不太好记的用法

    1 dup

    主要用在开辟空间, 赋初值方面. 

    dup的使用格式如下:
    db 重复的次数 dup (重复的字节型数据)。
    dw 重复的次数 dup (重复的字型数据)。
    dd 重复的次数 dup (重复的双字数据)。

    db 3 dup (0):定义了3个字节,它们的值都是0,相当于db 0, 0, 0。

    db 3 dup (0,1,2);定义了9个字节,它们是0,1,2,0,1,2,0,1,2,相当于:db 0,1,2,0,1,2,0,1,2。

    2 全局字符串需要显示添加'' 结尾,并且没有转义字符

    eg: str1 db "phone book is full!",0dh,0ah,0

    四 目前在这个版本中遇到的坑

      1 这个IDE的光标对中文兼容性不太好, 当调大编辑区的字体, 或者调整tab的显式空格数的时候, 有可能会出现光标跟当前的字符出现一段距离的bug

      2 变量类型在".data"区可以使用缩写, 在.code区只能使用类型名的全称

      3 关于"offset 变量名"与 "lea register, 变量名"(个人理解, 可能不准确)

      (1) 变量名 代表变量所在的内存单元的值(长度取决于你声明的类型)

      (2) offset 变量名, 表示取变量名相对于起始位置的偏移值, 就是" DS:[XX]" 里面的XX, 简单来说就是c++里面取地址的意思, 返回的是一个立即数

      (3) lea register,变量名(或者 lea register,[变量名]) 都是将变量名所在段的偏移地址赋值给register, 等价于 mov register, offset 变量名, 这个用法比较别扭, 建议不要使用lea取地址这种用法

      4 scanf的坑

        在读取使用%d 读取一个整数的时候, 键盘输入字母, 会出现令人抓狂的现象

      5 在radasm中使用的标准类库跟vs里面的标准类库的关系

        两者没有半毛钱的关系, 两者里面名字相似的函数的行为细节不完全一样, 不如scanf 

  • 相关阅读:
    自定义 cell
    iOS的自动布局
    通过字符串获取沙盒路径延展类
    Orcale nvl函数
    Orcale sign函数
    Orcale decode函数
    Orcale rpad函数
    mapper.xml速查
    Spring Boot整合SpringMVC应用
    Spring Boot 整合MyBatis框架
  • 原文地址:https://www.cnblogs.com/talenth/p/7102404.html
Copyright © 2011-2022 走看看