目录
基本概念
符号指令中的表达式
符号
数值常量
符号常量(用的很少)
数值表达式
标号(一般出现在代码段)
程序框架 编辑
标号的定义
变量(最重要)
变量的属性编辑
变量存储区中数据的存放编辑
变量的定义
练习
地址表达式类型的变更
基本概念
机器指令(机器唯一可以识别的指令):2进制
汇编指令(符号指令):由助记符,符号组成。与机器指令时一一对应的。
也就条汇编指令翻译成一条机器指令
而C语言可不是一个指令翻译成一条机器指令
汇编:把符号指令翻译为机器指令,翻译的过程叫汇编
汇编程序:完成汇编任务的程序
例如
符号指令中的表达式
符号
以字母开头的一串字符
为了区别符号和数据,以字母开头的十六进制数,要在前面加一个前导0
0FFFH 数据(这个前导零没有数值的意义,也不用转换为4个零,仅仅代表后面跟着的是一个16进制的数据)
FFH 符号
汇编中的各种符号由伪指令来定义
有常量,变量和标号三类。
数值常量
单引号里面存的是ASCII码的值
要和C语言区分开,C语言是不可以定义字符串常量的,C中要用字符数组。
而汇编语言可以定义字符串常量
符号常量(用的很少)
类似于C语言的,#define pi 3.14
EQU后面可以跟字符 JIA EQU ADD
而= 后面只可以跟数值
数值表达式
AND AX,2 AND 3
前面的AND表示在执行AND指令,后面的AND是运算符
关系运算要注意
真是0FFFFH (全1) 比如 2 EQ 2
假是0 比如 2 EQ 4
和C语言区分开,C是处了0都是真
标号(一般出现在代码段)
程序框架
比如 START和EXIT两个标号,他们的段地址相同,偏移地址不相同
比如我JMP START , (CS:IP) 就是把地址赋值给IP,就会重新从START开始执行
标号的定义
我们只考第一种
变量(最重要)
变量定义在数据段, 变量名也就是一个地址
BX指针其实根C语言差不多 , int *p=arr arr是数组名,不加括号就是地址,加上括号arr[0]就是去第一个位置取值,大同小异
变量的属性
变量存储区中数据的存放
注意:一个格子里面存8位二进制。它写16进制完全是方便让我们看
你就记住你画一个格子就是一个8位二进制
比如上面定义的VAR1,我要想把这两个格子当一个字取出来会是多少
高高低低原则
变量的定义
只用会红框标注的就可以。只要有一个数据 DB占一个格子,DW占两个格子,DD占4个格子
重点
DW定义字就要分高低位,就需要前面的高高低低原则 。不可以在填加数据,在添加就已经超出一个字可以表示的范围了
而DB定义,会把后面的当成一个字符串,谁先出来就先安排谁,谁先出来谁地址就是低的。所以对于DB来说,单引号里面可以是任意长度
练习
B1 DW 'AB$'
W2 DW 1994H 画出它的内存图
B2 DB 2 DUP(-5,-1)
DB 1 DUP(10,'E')
DB '13',1,3
地址表达式类型的变更