您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 汇编语言程序设计教案1
关于程序设计语言•程序设计语言分为三类:机器语言汇编语言高级语言机器语言汇编语言机器语言汇编汇编语言高级语言高级语言机器语言编译解释唯一能被计算机能直接识别的语言汇编语言程序设计第七讲内容安排•课题一汇编语言语法和程序格式–伪指令–程序的段结构•课题二基本程序结构–程序流程图–顺序程序设计–分支程序设计–循环程序设计–子程序设计课题一汇编语言语法和程序格式•伪指令•程序的段结构一.汇编语言的语句种类及格式1.指令语句格式:[标号:]指令助记符[操作数,…][;注释]例:……2.伪指令语句伪指令不是真正的CPU指令,它的作用只是告诉汇编程序,对后面的指令语句和伪指令语句的操作数应该如何产生机器目标代码。格式:[符号名]伪指令[操作数,...][;注释]与指令语句中的标号不同,符号名后面不得使用冒号。注:我们把指令语句中的标号和伪指令语句中的符号名统称为标识符二.程序的段结构8086/8088CPU在访问存储器时,是把存储器分若干段,通过四个段寄存器对各段进行访问的。因此,我们在编制程序时,也必须按段来构造程序。一个程序通常按用途划分成几个段(至少要有一个段),如数据段,程序段,堆栈段,子程序段等。每种用途的段可以有多个。例子:...1、段定义伪指令要在程序中设置段,必须使用段定义伪指令。•格式:段名SEGMENT[定位类型][组合类型][类别名]……段名ENDS本段语句序列(程序或数据)•参数说明:段名定位类型组合类型类别名•例子2.段寻址伪指令•格式ASSUME段寄存器名:段名,段寄存器名:段名,………•作用告诉汇编程序:已定义的段与段寄存器的对应关系。•说明ASSUME只是建立了当前段与段寄存器的联系,但不能把各段的段基值装入相应段寄存器中。3.段寄存器的装入段寄存器的装入要用程序的办法,且四个段寄存器的装入略有不同。⑴DS和ES的装入由于段寄存器不能用立即数寻址方式直接传送,所以一个段的段基值要经过通用寄存器才能传送给DS,ES。例如:DATA1SEGMENTDBYTE1DB12HDATA1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA1START:MOVAX,DATA1MOVDS,AX..⑵SS的装入•方法1:在段定义伪指令的组合类型项选择“STACK”参数,且在段寻址伪指令中将这个段指定给段寄存器SS。例:STACK1SEGMENTPAPASTACKDB40HDUP(?)STACK1ENDS...CODESEGMENTASSUMECS:CODE,SS:STACK1...•方法2:如果在段定义伪指令的组合类型中,没有选用“STACK”参数项,或者在程序中要调换另一个堆栈段,这时要用类似于DS,ES的装入办法来实现。⑵SS的装入⑶CS的装入•用结束伪指令END指定地址装入CS和IP。•伪指令的格式:END起始地址三.一些常用的伪指令1.数据定义伪指令变量名DBDWDD表达式1,表达式2,……说明:DB申请一个数据项为字节的数据区DW申请数据项为字的数据区DD申请数据项为双字的数据区表达式2.赋值伪指令•格式:名字EQU表达式•作用:给表达式赋予一个名字,其后程序的各条指令中凡需用到该表达式的地方均可以用此名字来代替。四.一般程序格式STACK1SEGMENTPARASTACK...STACK1ENDSDATASEGMENT...DATAENDSCOSEGSEGMENTASSUME......MAIN:......COSEGENDSENDMAIN
本文标题:汇编语言程序设计教案1
链接地址:https://www.777doc.com/doc-7598415 .html