80x86汇编语言学习笔记(三)

今天上午开始看汇编语言程序设计初步,这一章分为:汇编语言语句、变量和标号、常用伪指令语句和源程序组织、顺序程序设计、分支程序设计、循环程序设计这几块,这次总结一下汇编语言的语句。

 

首先汇编语言的语句分为指令语句、伪指令语句和宏指令语句,其中指令语句是可以被译成机器指令的语句,例如将某操作数从一个寄存器复制到另一个寄存器;伪指令语句没有与其相对应的机器指令,只是用来指示如何汇编源程序,例如变量的定义;宏指令语句是利用宏定义伪指令定义的某个程序片段。

关于汇编语言语句的格式,各种符号的使用一定要注意

1.语句中各部分见一定要有分隔符,其中空格和制表符是最常用的分隔符。

2.汇编语言中的注释前面使用的是分号,这点要与C++区分开。

3.语句中的参数(例如两个操作数之间)多用逗号作为分隔符,但空格和制表符也可以。

4.标号和名字一般由字母、数字及规定的特殊符号(?@_$)等组成,并且不能以数字开头,同时名字和标号也不能是汇编语言的保留字(包括助记符、伪指令定义符、寄存器名等)。

5汇编不区分保留字、名字、标号中的字母大小写。

 

汇编中中的各种运算符和操作符以及常数、符号连在一起成为表达式,表达式分为数值表达式和地址表达式

一.数值表达式

数值表达式就是在汇编过程中能够由汇编程序计算出数值的表达式

这里先总结一下常数和运算符:

1.常数

1)10进制数是以D结尾或无结尾的常数,例如10,10D

2)2进制数是必须以B结尾的常数,例如010010B(注意,这里是必须以B结尾,下面的8进制和16进制数均是必须有结尾,这点要与10进制区分开)

3)8进制是必须以Q结尾的常数,例如73Q。

4)16进制是必须以H结尾的常数,而且16进制也是汇编中最常用的常数类型,例如3AH。同时要注意,汇编中的16进制数不允许以字母开头,必须以数字开头,若开头为字母,则需在开头加0,如F54H是错误的,必须是0F56H。

5)字符串常数是以引号括起来的一个或多个字符,与C++不同,这里使用双引号和单引号的效果是相同的,不论是一个或是多个字符,而且字符串常数最终是以引号中的字符的ASCII码呈现出来的,而不是作为字符,例如'A'是41H,'ab'是6162H。

 

2.算术运算符

就是+、-、×、/、MOD(取模),这些在汇编里与在高级语言中的使用方法是一样的

 

3.关系运算符

包括相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)、大于等于(GE)。若成立则结果为1,若不成立则结果为0FFFFH,而不是0,这点要注意。

 

4.逻辑运算符

包括与(AND)、或(OR)、非(NOT)、异或(XOR)、左移位(SHL)、右移位(SHR)。注意这些要与逻辑运算指令区分开。其中左右移位就是将运算符左侧的操作数的二进制形式移动右侧操作数指定的位数,例如MOV    AX,1   SHL   3就相当与MOV    AX,8

 

5.表达式中使用操作符

可用的操作符有HIGH,LOW,LENGTH,SIZE,OFFSET,SEG,TYPE,WIDTH,MASK。具体功能就不说了,但要注意操作符的优先级比+,—要高。

 

二.地址表达式

是间接给出了操作数,这就没什么说的了。与数值表达式不同,地址表达式是给出存储器操作数的地址,而不是直接给出数值,也就是间接给出了操作数,这就没什么说的了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值