基本信息
文件名称:《汇编语言程序设计》-电子教案第二章.pptx
文件大小:1.37 MB
总页数:114 页
更新时间:2025-03-24
总字数:约4.56千字
文档摘要

《汇编语言程序设计》-电子教案第二章;第二章 程序设计基础;本章学习目标;2.1 汇编语言源程序结构

;例2-1显示信息“Howdoyoudo?”;例2-2将内存缓冲区中以BUFA开始的一组字数据传送到BUFB开始的内存区。; LEA SI,BUFA

LEA DI,BUFB

MOV CX,COUNT

LOP: MOV AX,[SI]

MOV [DI],AX

INC SI

INC SI

INC DI

INC DI

DEC CX

JNZ LOP

MOV AH,4CH

INT 21H

CODE ENDS

END START

;2.1.2机器指令简介

;所有机器指令从格式上看,有3种指令格式:; ②单操作数指令

格式:助记符操作数

例如: PUSH AX

POP BX; ③双操作数指令

格式:助记符目的操作数,源操作数

例如:MOV CX,DX;2.1.3常量、变量、标号及表达式

;例如:在下面的汇编源程序中,带下画线的量就是常量

DATA SEGMENT

STR DB“Howdoyoudo?$”

DATA ENDS

STACK SEGMENT STACK

DB 200DUP(?)

STACK ENDS

CODE SEGMENT

ASSUMEDS:DATA,SS:STACK,CS:CODE

START: MOV AX,DATA

MOV DS,AX

LEA DX,STR

MOV AH,9

INT21H

MOV AH,4CH

INT 21H

CODE ENDS

END START; 例如:在下面的数据段中,带下画线的是一个符号常数,它是使用EQU伪指令定义的。

DATA SEGMENT

BUFA DW 367BH,2845H,0A78H, 9DE3H,0F6BH,6532H

COUNT EQU($-BUFA)/2

BUFB DW COUNTDUP(?)

DATA ENDS

定义符号常数使用EQU伪指令、“=”伪指令。;2.变量

;(1)变量的定义;例如:在数据段DATA中定义字节变量STR。

DATA SEGMENT

STR DB“Howdoyoudo?$”

DATA ENDS;例如:在数据段DATA中定义了字变量BUFA和BUFB。

DATA SEGMENT

BUFA DW367BH,2845H,0A78H, 9DE3H,0F6BH,6532H

COUNT EQU($-BUFA)/2

BUFB DWCOUNTDUP(?)

DATA ENDS;(2)变量的属性;3.标号

;(1)标号的定义;(2)标号的属性;4.表达式

;(1)算术运算符;例如:算术表达式的计算

219/7=31

86.4/2.6=33

219MOD7的结果为2;(2)关系运算符;例如:假设NUM的值为60H。则:

NUM GT 80H

NUM EQ 60H ;⑶逻辑运算符;例如:假设NUM的值为6BH?

则:

NUM AND87H ;表达式的值是03H

NUM OR 87H ;表达式的值??0EFH

NUMXOR87H ;表达式的值是0ECH

NOT 87H ;表达式的值是78H

NUMSHR2 ;表达式的值是1AH

NUMSHL 2 ;表达式的值是0ACH;⑷其他运算符;①SEG;②OFFSET;DATA SEGMENT

BUFA DW367BH,2845H,0A78H, 9DE3H,0F6BH,6532H

COUNT EQU($-BUFA)/2

BUFB DWCOUNTDUP(?)

DATA ENDS

MOV AX,SEGBUFA

MOVDS,AX

MOVSI,OFFSETBUFA

MOVDI,OFFSETBUFB;③TYPE

返回其后变量或标号的类型。;例如:在下面的数据段中。

DATA SEGMENT

A DB87H,45H,92H

B DW34D6H,0F67H

C DD?

DATA ENDS

若在代码段中有如下指令:

MOVAH,TYPEA

MOVAL,TYPEB

MOVCH,TYPEC

则将被汇编成:

MOVAH,1

MOVAL,2

MOVCH,4;④LENGTH;⑤SI