- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理 汇编语言程序设计课件
第四章 8086汇编语言程序设计;◆伪指令语句格式如下:
[名字] 伪指令符 操作数 [;注释]
1.名字:是给伪指令取的名称,用符号地址表示。
2.伪指令符:伪指令符指定汇编程序要完成的具体操作,如数据定义伪指令DB、DW、DD,段定义伪指令SEGMENT。
3.操作数:伪指令后面的操作数可以是常数、字符串、变量、表达式等,其个数由具体的伪指令决定,各个操作数之间必须以“逗号”分隔。
;4.1.3 数据项;字符串常量是用单引号引起来的一个或多个字符。
字符串常量是以各字符的ASCⅡ码表示的。
如‘A’用41H 表示,
字符串‘A1B2’用41H,31H,42H,32H表示。
;㈡ 变量;㈢ 标号;4.2 表达式与运算符;算术运算符包括:
+(加)、-(减)、*(乘)、/(除)、
MOD(求模)几种,
它既可以用于数值表达式又可用于地址表达式。
; ┆
NUM1 EQU 25*4 –50 ;NUM1=50
NUM2 EQU NUM1 / 7 ;NUM2=7
NUM3 DB NUM1 MOD 7 ;(NUM3)=1
VAR1 DB 1,2,3,4,5
VAR2 DB ‘12345’
NUM4 EQU VAR2-VAR1 ;NUM4=5
NUM5 EQU 0FH
┆
MOV AL,NUM5 SHL 4 ;(AL)
MOV BL,NUM5 SHR 4 ; (BL)
;逻辑与移位运算符包括:与(AND)、或(OR)、异或(XOR)、非(NOT)、 SHL(左移)、SHR(右移)。
逻辑运算是按位操作,只能对常数进行运算,运算的结果也为常数。
【例】用逻辑运算符进行运算。
MOV AL,34H AND 0FH ;04H→AL
MOV BL,05H OR 30H ;35H→BL
MOV CX,NOT 00FFH ;0FF00H→CX
MOV DX,789AH XOR 000FH ;7895H→DX
;关系运算符包括:相等(EQ),不等(NE),小于(LT),大于(GT),小于等于(LE)及大于等于(GE)。
【例】用关系运算符进行数值表达式运算。
NUM1 DB 10 LT 5 ;(NUM1)=0
NUM2 DB 0AAH GT 7FH ;NUM2=0FFH
MOV AX,‘A‘ EQ 41H ;0FFFFH→AX
ADD BL,5 LT 0101B;BL+0 → BL
;PTR运算符
格式: 类型 PTR 地址表达式
PTR用来对存储单元(重新)规定类型。 ;(1)SEG 运算符
格式:SEG 变量或标号
功能:分离出其后变量或标号所在段的段基址。例如:
MOV AX,SEG ARR
MOV DS,AX
(2)OFFSET运算符
格式:OFFSET 变量或标号
功能:分离出其后变量或标号的偏移地址。例如:
MOV BX,OFFSET BUF
;(3)TYPE运算符
格式:TYPE 变量或标号
功能:分离出其后变量或标号的类型。如果是变量,将返回该变量的类型对应字节数;如果是标号,则返回代表标号类型的数值。它们之间的关系见表所示。;(4)LENGTH运算符
格式:LENGTH 变量
功能:取出变量所含的数据单元数。
【例】取出变量占数据单元个数。
DATA SEGMENT
A DB ‘ABCDEF’
B DW 10 DUP (1,2DUP(2))
DATA ENDS
┆
MOV AX,LENGTH A ;1→AX
MOV BX,LENGTH B ;10→BX
┆;(5)SIZE运算符
格式:SIZE 变量
功能:取出变量所含的数据存储区大小(字节)。其返回值为:
LENGTH 变量 * TYPE 变量
例如:上例中A、B、C三变量:
SIZE A = LENGTH A*TYPE A = 1
SIZE B = LENGTH B*TYPE B = 20
;(6) 运算符的优先级; 伪指令语句由MASM汇编程序对源程序汇编期间进行处理,主要完成变量定义,存储器分配,指令程序开始和结束,段定义,段分配等。伪指令语句有如下类型:
数据定义语句DB,DW,DD
标号赋值语句EQU,=
段定义语句SEGMENT…ENDS 经常使用
段分配语句ASSUME
过程定义语句PROC…ENDP
程序开始结束语句O
文档评论(0)