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

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

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

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

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

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

第4章汇编语言程序设计 1.教学目的:掌握微型汇编语言格式和程序设计方法 2.教学要求: 熟悉汇编语言程序的结构、语句类型和格式。 熟悉数据项及表达式,要求能明确区分标号和变量。 熟悉各类伪指令,要求掌握常用伪指令格式和应用。 3.教学重点: 指令语句格式和伪指令语句格式 汇编语言程序格式。 4.掌握难点: 伪指令 伪指令存储器分配技术 6.教学方法: 课堂讲授 7.教学内容摘要: 4.1汇编语言程序格式 4.1.1程序结构 【例4-1】先给出一个完整的汇编语言源程序,该程序的功能是完成两个字节数据相加。 DATA SEGMENT ;段定义开始(DATA段) BUF1 DB 34H ;第1个加数; BUF2 DB 2AH ;第2个加数 SUM DB ? ;准备用来存放和数的单元 DATA ENDS ;段定义结束(DATA段) CODE SEGMENT ;段定义开始(CODE段) ASSUME CS:CODE,DS:DATA ;规定DATA、CODE分别为数据段和代码段 START: MOV AX, DATA MOV DS, AX ;给数据段寄存器DS赋值 MOV AL, BUF1 ;取第1个加数 ADD AL, BUF2 ;和第2个加数相加 MOV SUM,AL ;存放结果 MOV AH, 4CH ; INT 21H ;返回DOS状态 CODE ENDS ;段定义结束(CODE段) END START ;整个源程序结束 ⑴指令语句: ⑵伪指令语句: 4.1.2语句格式 [名字]操作码操作数[;注释] 1.名字 ⑴名字的标识符 ⑵名字的定义规则 ⑶名字的2种主要形式 ①标号 ②变量 2.操作码 3.操作数 ⑴常数 ⑵表达式 ①算术运算符 ②逻辑运算符 ③关系运算符 4.注释项 4.2伪指令与伪操作 4.2.1定义符号的伪指令 1.等值伪指令EQU 格式:<符号名>EQU<表达式> 2.等号伪指令= 0A 04 10 64 00 00 01 FB FF 3C 00 00 00 FD FF 00 00 DATA_BYTE DATA_WORD DATA_DW 10d 4 10h 100d 60d 0FFFDh -5 100h EMP=7 EMP=EMP+1 3.解除定义伪指令PURGE 格式:PURGE<符号1,符号2,…,符号N> 4.2.2定义数据的伪指令 [变量]助记符操作数,…,操作数[;注释] 功能:为操作数分配存储单元,并用变量与存储单元建立联系。 DB、DW、DD、DQ、DT 【例4-2】操作数可以是常数,或者是表达式 (根据该表达式可以求得一个常数),如 DATA_BYTE DB 10,4,10H DATA_WORD DW 100,100H,-5 图4.1例4-2的汇编结果 DATA_DW DD 3C,OFFFDH 汇编程序可以在汇编期间在存储器中存入数据, 汇编后的内存分布如图4.1所示。 【例4-3】操作数也可以是字符串,如: MESSAGE DB ‘HELLO’ 则存储器存储情况如图4.2⑴所示,而DB‘AB’ 和DW‘AB’的存储情况则分别如图4.2⑵和⑶ 所示。 【例4-4】操作数?可以保留存储空间,但不存入数据。 如:ABC DB 0,?,?,0 DEF DW ?,52,? 经汇编后的存储情况如图4.3所示。 MESSAGE 48 45 4C 4C 4F 41 42 42 41 H E L L O A B B A ⑴字符串的存储⑵DB‘AB’⑶DW‘AB’ 图4.2例4-3的汇编结果 【例4-5】使用DUP实现重复定义 ARRAY1 DB 2 DUP(0,1,2,?) ARRAY2 DB 100 DUP(?) 汇编后的存储情况如图4.4所示。 由图可见,例4-5中的第一个语句和语句ARRAY1DB0,1,2,?,0,1,2,?是 100个字节 00 - - 00 - - 34 00 - - ABC DEF 52d 00 01 02 - 00 01 02 - - ┇ - ARRAY1 ARRAY2 等价的。 图4.3例4-4的汇编结果 图4.4例4-5的汇编结果 4.2.3定义程序开始和结束的伪指令 NAME MODULE_NAME TITLE TEXT END [LABEL] 4.2.4指令集选择伪指令 .8086选择8086指令系统 .286选择80286指令系统 .286P选择保护方式下的80286指令系统 4.2.5地址计数器与对准伪操作 1.地址计数器$ JNE$+6 【例4-6】