汇编的基本组成主要包括
- 数据段 ds
- 代码段 cs
代码的主要组成是指示性语句
和指令性语句
构成
指令性语句: 主要由指令构成的语句,
其格式为: [标号:]操作码[操作数][;注释]例如: LOP:ADD AL,[BX] 注意:标号(这里是LOP)必须用“:”结尾。标号一般作为在下面的某一步转移时用来标记的位置
如下面的第13行的t:
和第20行的loop t
loop
就是用来跳转的指令。指示性语句:要是由命令(亦称为
伪指令
)构成的指令,是用来只是汇编程序进行汇编 操作的,
其格式为: [名字/变量]命令 参数[;注释]如mov cx,16
就是将16 送到cx里面存储。
下面是显示二进制数的汇编代码
;定义数据段
datasegment
dat1dw
5678H;dw
是表示字,db
标志字节,dd
表示双字
dataends
;每定义一个段时都要有结束的标志
;声明
codesegment
assume
ds
:data,cs
: code
start
:
mov
ax
,data;
mov ``ds
,ax
;ds是数据段寄存器,你可能会疑惑为什么不能直接mov ds, data特定用法哈
mov
bx,dat1;将dat1容器内的值赋值给bx
mov
cx
,16;cx一般作为计时寄存器特定功能
t
:
rol
bx
,1;左移1位将首个二进制放到最后一位
mov
dx
,bx
;将bx放到ds中因为如果再对bx操作的话会影响结果mov dl,bl
and
dx
,01h;这样写浪费内存可以改为and dl,01h因为dx的容器分为低八位dl和高八位dh
add
dx
,30h;这是将dx里面的值与30h相加 这是得到0-1的方法可以查ascii表会发现30h的位置是0,。
mov
ah
,02h
int
21h;以上两句是打印到屏幕上的特定用法
loop
t;判断的一句就是cx-1如果不为零就执行跳转指令如果为零就不执行跳转指令
mov
ah
,4ch
int
21h;以上两句是返回dos界面的特定写法
code
ends
end
start
显示如下:显示的结果是以BCD码的形式显示的