zoukankan      html  css  js  c++  java
  • 第3章 汇编语言基础

    https://files.cnblogs.com/files/student-note/MASM615.zip

    整数常量:
       格式[{+/-}]数字[基数]
      常用基数后缀
    h:十六进制 d:十进制 b:二进制 q/o:八进制 r:编码实数

    十六进制如果是以字母开口则需要加0 ,防止编译器当成标识符

      优先级别: () -> +-(一元的) -> */ -> MOD -> +-

    指令格式 [:标号]指令助记符|操作数[;注释]
    标号:
      充当指令或数据位置标记的标识符
    数据标号:
      count dword 100
    注释语法:
      单行用 ;
      多行用 COMMENT 用户自定义符号 内容 用户自定义符号
    TITLE Program Template (Template.asm)
    ;程序的描述:
    ;作者:
    ;创建时间:
    ;修改:
    ;日期: 修改者:
    INCLUDE Irvine32.inc ;导入头文件
    .data
    ;(在此插入变量)
    .code
    main proc
    ;(插入代码)
    exit
    main endp
    ;(在此插入其他子程序)
    end main

    --常用编译语句 使用的是masm615
      ml /c /coff 1.asm
      link32 /subsystem:console irvine32.lib kernel32.lib 1.obj

    数据定义语法
    [变量名] 数据类型伪指令 初始值[,初始值]
    初始值用 ? 代替,表示可以用执行指令动态赋值
    定义字符串
    greeting1 byte "good afternoon",0
    greeting2 byte 'good night',0
    续行符()用来把两行连接成一条程序语句,只能放在每行的最后面
    greeting1
    byte "good afternoon",0
    DUP操作符使用常量表达式作为计数器为多个数据项分配存储空间:
    BYTE 3 DUP("XXX") 9个Byte

    .data? 伪指令可用于声明未初始化数据
    代码数据可以随便切换,可用于局部变量
    eg:
      .code
      mov ax,3900h
      .data
      val word 1
      .code
      mov ax,val
    符号常量:语法 名称=表达式
      COUNT=1
      MOV AX,COUNT
    重定义:
      COUNT =5
      MOV AL,COUNT ;5
      COUNT=10
      MOV AL,COUNT ;10

    计算数组和字符串的大小:
    eg:
      list byte 10,20,39
      listsize=($-list);$表示当前地址
    EQU 伪指令
    语法:
      name equ expression
      name equ symbol
      name equ <text>

  • 相关阅读:
    linux编程:删除文件夹下的空文件
    设置vim的显示颜色
    LVM的实现流程
    LVM(逻辑卷管理器)原理
    Ext2文件的访问与日志文件系统
    Linux系统的Ext2文件系统
    linux 磁盘分区的理解
    postgresql在Linux下的安装
    内存泄漏工具VLD
    关于 正交投影 与 透视投影
  • 原文地址:https://www.cnblogs.com/student-note/p/8597309.html
Copyright © 2011-2022 走看看