汇编语⾔语句类型格式
汇编语⾔源程序的中的语句分为两⼤类:指令性语句和指⽰性语句
指令性就是能够被CPU执⾏的语句;指⽰性就是不被CPU执⾏的指令,不能⽣成⽬标代码,⼜称为伪操作语句或伪指令。
操作数可以是寄存器或存储器或数据段。数据段可以是常量,表达式,变量,标号。
标号代表存放⼀条指令的存储单元的符号地址,后⾯必须加冒号。有段值,段偏移量,类型三个属性。
表达式:
1 诸如算术运算符值类的运算:
MOV AL,8+5 等价于MOV AL,13
2 同时还有逻辑运算符,名字和指令的AND,OR,XOR等相同。
MOV AL,0AH AND 0CCH
3 关系运算符EQ NE LT LE GT GE
MOV AX,4 EQ 3 汇编指令为 MOV AX,0
关于伪指令:
1 数据定义的伪指令
常⽤的指令有DB,DW,DD,DQ,DT,分别代表定义变量为1,2,4,8,10个字节类型。
定义操作书的相关伪代码如下:
DATA DB 11H,33H; 包含两个元素的字节变量DATA
NUM DW 100*5+88
STR DB 'HELLO
数据定义的操作数还可以是?,对变量保留相应的存储单元,但不赋予变量的值。⼩编在写程序的时候需要加引号。
2 重复操作符 DUP
DATA1 DB 20 DUP('?') ; 20代表为变量DATA1分配20个字节的存储空间,初值为任意值,或者为相对应的存储单元本来的值。关于DOS的调⽤:
输⼊单个字符显⽰:
CODE SEGMENT
ASSUME CS:CODE
START: MOV AH,1
INT 21H
JMP START
CODE ENDS
END START
显⽰单个字符:
CODE SEGMENT
ASSUME CS:CODE
START: MOV DL,'B'
MOV AH,2
INT 21H
CODE ENDS
END START
输⼊字符串:
DATA SEGMENT
STRING DB 10,0,10 DUP('?')
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX
LEA DX,STRING
MOV AH,0AH
INT 21H
MOV CL,STRING+1
XOR CH,CH
ADD DX,CX
MOV BX,DX
MOV BYTE PTR[BX+2],'$'
MOV AH,4CH
INT 21H
CODE ENDS
END START
显⽰字符串:
DATA SEGMENT
STR DB '123ABC'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA
mov ds,ax
lea bx,str
汇编指令有多少个
MOV CX,6
LPP: MOV AH,2
MOV DL,[BX]
INC BX
INT 21H
LOOP LPP
MOV AH,4CH
INT 21H
CODE ENDS
END START
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论