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

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

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

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

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

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

微机原理与接口技术第四章主要内容汇编程序编写、编译和运行4.1汇编语言程序格式和伪指令4.1.1汇编语言程序格式1.指令性语句1)标号 标号的取名规则: 可由字母、数字、下划线等特殊字符组成 首字符必须为字母或某些特殊字符,不能为数字(数值常量必须以数字开头) 名字最长31个字符 保留字不能作为名字 标号具有3种属性:段基址,偏移地址,类型。 2)指令助记符 指令语句中必须的部分操作数项 操作数可以是常数、寄存器、存储区、变量、标号、表达式,其中常数、变量和标号是三种基本数据项。 常数 变量 标号常数 给出具体的数据。可以是数字常量或字符常量。 ◢◢数字默认十进制,也可加D表示十进制数。如1234D,1234 ◢◢数字后加B表示二进制数。如1010B ◢◢数字后加H表示十六进制数。如1234H ◢◢字符常量,用单引号表示。如‘1234’ 汇编后,用字符对应的ASCII表示。如31H,32H,33H,34HA、B、C、D、E、F开头的十六进制数前面加0, 与H结尾的标识符区别。 如寄存器名AH、BH、CH、DH 变量名abcdH等 例movAL,0AH movAL,AH movBX,0abcdH变量 用符号表示的存放在存储单元中的可变数值。由DB、DW、DD等伪指令定义。 具有三种属性:段基址、偏移地址、类型2.伪指令语句3.表达式和运算符1)算术运算符例 DA EQU 300 MOV AX,DA-80 MOV BX,DAMOD100 MOV CX,DA/100 MOV DH,01100100BSHR2 ;上述语句等效于: DA EQU 300 MOV AX,200 MOV BX,0 MOV CX,3 MOV DH,19H补充:现行地址符$(程序计数器)2)逻辑运算符和关系运算符例 MOV AL,NOT0FFH MOV BL,8CHAND73H MOV AH,8CHOR73H MOV CH,8CHXOR73H ;上述语句等效于: MOV AL,0 MOV BL,0 MOV AH,0FFH MOV CH,0FFH例 MOV AX,10HGT16 MOV BL,6EQ0110B MOV CX,((PORTLT5)AND100)OR(PORTGE5)AND200) ;上述语句等效于: MOV AX,0 MOV BL,0FFH MOV CX,100 ;PORT<5时3)数值返回TYPE返回类型 TYPE 例: 000620 A1DB20H 0007???? A2DW? 0009???????? A3DD ? 000D???????????????? A4DQ ? 0015??????????????????? A5DT ? 001EB401 MOV AH,TYPEA1 0020B402 MOV AH,TYPEA2 0022B404 MOV AH,TYPEA3 0024B408 MOV AH,TYPEA4 0026B40A MOV AH,TYPEA5 0028B4FF MOV AH,TYPETMP_NEAR 002AB4FE MOV AH,TYPETMP_FARLENGTH 例 M1 DW 100DUP(?) M2 DW 1,2,3 M3 DB ‘ABCD’ MOV CX,LENGTHM1 MOV BL,LENGTHM2 MOV AL,LENGTHM3 ;上述语句等效于: MOV CX,100 MOV BL,1 MOV AL,1SIZE(SIZE=TYPE*LENGTH) 例 M1 DW 100DUP(?) M2 DW 1,2,3 M3 DB ‘ABCD’ MOV CX,SIZEM1 MOV BL,SIZEM2 MOV AL,SIZEM3 ;上述语句等效于: MOV CX,200 MOV BL,2 MOV AL,14)修改属性段操作符 PTR 例 N1 DB15H,36H N2 DW1122H,3344H LO: MOV AX,WORDPTRN1 ;AX=3615H MOV BL,BYTEPTRN2 ;BL=22H 优先级4.1.2伪指令语句1.段定义语句2.段分配段定义和段分配举例: DATA SEGMENT D1 DW1234H D2 DW5678H P1 DD? P2 DD? DATA ENDS STK 1 SEGMENTSTACK'STACK' DW 100DUP(?) STK 1 ENDS CODE SEGMENT A