汇编课件第三章.ppt
文本预览下载声明
第三章 汇编语言程序设计(1) §3.2 、源程序的书写格式和数据组织 3、输入字符串: DS:DX指向内存缓冲区首址,然后执行 MOV AH,0AH INT 21H 结果:以回车键结束的字符串输入到内存缓冲区。 4、输出显示字符串: DS:DX指向内存缓冲区首址,然后执行 MOV AH,09H INT 21H 结果:内存缓冲区中以$结束的字符串显示在屏幕上。 变量的访问: 类型一致(及跟随)原则。 1、指令中两个操作数的类型必须一致,否则错; 2、若一个操作数类型确定,另一个不确定,则跟随前者而确定; 3、存储器操作数的类型可修改,使其保持一致; 4、若两个操作数类型均不确定,则错。 ** 寄存器操作数类型固定; 立即操作数无类型; 定义变量时类型即已指明其类型,并可修改; 其他方式访问的存储器操作数,类型不确定,并可修改。 MOV AX,数据段名 MOV DS,AX MOV AX,附加数据段名 MOV ES,AX MOV AX,堆栈段名 MOV DS,AX 装填数据段 装填附加数据段 装填堆栈段 说明:DS,ES必须在程序段中进行人工装填, CS、SS由OS根据文件头中的信息自动装填。 段寄存器的装填: 源程序结束伪指令:END 格式:END [标号] 功能:表示源程序结束,并可指定程序从标号指向的指令开始执行。 外部名申明:EXTRN 格式:EXTRN [外部名] 说明本程序文件所用到的外部模块中的过程名、标号或变量名。 过程定义:PROC/ENDP 过程的起始和结束 方法2:在程序最后加 MOV AX, 4C00H MOV AH,4CH ;功能模块号 INT 21H ;中断功能调用 3、汇编语言程序的正常结束(三种方式) 方法1: 在.COM文件中或DEBUG下所写程序可用 INT 20H 或 INT 3H 结束程序。 方法3:过程结束 程序名 PROC FAR PUSH DS MOV AX,0 PUSH AX …… RET 程序名 ENDP DATA SEGMENT HM DB ‘Hello,world’,0DH,0AH,’$’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MOV AX,DATA MOV DS,AX MOV DX,OFFSET HM MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END 例:下面是一个完整段定义的简单例子,该程序实现显式字符串‘Hello,world’.源程序如下: 4、表达式赋值伪操作: 表达式名 EQU 表达式 B EQU [BP+8] ALPHA EQU 9 BETA EQU ALPHA+18 5、地址计数器伪操作: 地址计数器 $ :保存当前正在汇编的指令的地址 ORG $+8 ; 跳过8个字节的存储区 JNE $+6 ; 转向地址是 JNE 的首址 +6 $ 用在伪操作的参数字段: 表示地址计数器的当前值 A
显示全部