预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共44页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第四章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 NUM1MOD7 ;(NUM3)=1 VAR1 DB 1,2,3,4,5 VAR2 DB ‘12345’ NUM4 EQU VAR2-VAR1 ;NUM4=5 NUM5 EQU 0FH ┆ MOV AL,NUM5SHL4 ;(AL)=11110000B MOV BL,NUM5SHR4 ;(BL)=00000000B 逻辑与移位运算符包括:与(AND)、或(OR)、异或(XOR)、非(NOT)、SHL(左移)、SHR(右移)。 逻辑运算是按位操作,只能对常数进行运算,运算的结果也为常数。 【例】用逻辑运算符进行运算。 MOV AL,34HAND0FH ;04H→AL MOV BL,05HOR30H ;35H→BL MOV CX,NOT00FFH ;0FF00H→CX MOV DX,789AHXOR000FH ;7895H→DX 关系运算符包括:相等(EQ),不等(NE),小于(LT),大于(GT),小于等于(LE)及大于等于(GE)。 【例】用关系运算符进行数值表达式运算。 NUM1DB 10LT5 ;(NUM1)=0 NUM2 DB 0AAHGT7FH ;NUM2=0FFH MOV AX,‘A‘EQ41H ;0FFFFH→AX ADD BL,5LT0101B;BL+0→BL PTR运算符 格式:类型PTR地址表达式 PTR用来对存储单元(重新)规定类型。(1)SEG运算符 格式:SEG变量或标号 功能:分离出其后变量或标号所在段的段基址。例如: MOV AX,SEG ARR MOV DS,AX (2)OFFSET运算符 格式:OFFSET变量或标号 功能:分离出其后变量或标号的偏移地址。例如: MOVBX,OFFSETBUF (3)TYPE运算符 格式:TYPE变量或标号 功能:分离出其后变量或标号的类型。如果是变量,将返回该变量的类型对应字节数;如果是标号,则返回代表标号类型的数值。它们之间的关系见表所示。(4)LENGTH运算符 格式:LENGTH变量 功能:取出变量所含的数据单元数。 【例】取出变量占数据单元个数。 DATA SEGMENT A DB ‘ABCDEF’ B DW 10DUP(1,2DUP(2)) DATA ENDS ┆ MOV AX,LENGTHA ;1→AX MOV BX,LENGTH B ;10→BX ┆(5)SIZE运算符 格式:SIZE变量 功能:取出变量所含的数据存储区大小(字节)。其返回值为: LENGTH变量*TYPE变量 例如:上例中A、B、C三变量: SIZEA=LENGTHA*TYPEA=1 SIZEB=LENGTHB*TYPEB=20 (6)运算符的优先级伪指令语句由MASM汇编程序对源程序汇编期间进行处理,主要完成变量定义,存储器分配,指令程序开始和结束,段定义,段分配等。伪指令语句有如下类型: 数据定义语句DB,DW,DD 标号赋值语句EQU,= 段定义语句SEGMENT…ENDS经常使用 段分配语句ASSUME 过程定义语句PROC…ENDP 程序开始结束语句ORG,END 群定义语句GROUP 结构定义语句STRUC…ENDS 记录定义语句RECODE 4.3.1数据定义伪指令 例操作数是常数或表达式 DA1DB10H,52H DA2DW1122H,34H DA3DD5*20H,0FFEEH 汇编后数据在存储器中存放格式见图4-1 例操作数是字符串 FRISTDB‘HELLO’ SECONDDW‘OK’ 用DW定义字符串时,只允许包括两个字符,多于两个字符时,只能用DB定义,见下页图4-2。 例操作数用?定义不确定值的变量,用作保留存储空间,以便存放运算结果。 M1DB? M2DW0D55H,? 存储器中