微机系统与接口课件-第4讲汇编语言_第1页
微机系统与接口课件-第4讲汇编语言_第2页
微机系统与接口课件-第4讲汇编语言_第3页
微机系统与接口课件-第4讲汇编语言_第4页
微机系统与接口课件-第4讲汇编语言_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

直接用机器指令来编制计算机程序的方法可以用助记符来表示指令的操作和操作数,也可以用号和符号来代替地址、常量和变量更接近于人们的自然语言和的教学语言来描述算的执行过程,从而使编写的过程更加直观和简练清 o, CS:code,DS: AX,data DS,AX DX,msg AH,9h AX,4C00h

数据代码结束语分段结一个汇编源程序由若干个段(Sgnt组成。每个段以SEENT语句开始,以ENS结束。整个源程序以E语句结尾。段段汇编语言的段是逻辑段;8086P管理的器的段是物理段共有个:数据段、附加段、堆栈段、代码段,对应个段寄存器:DS、S、S和S。一个汇编语言源程序中可以有多个逻辑段 21DOS 21 编辑器,如编辑器,如:文件名汇编程序,如目标程序:文件名程序,如可执行文件:文件名调试程序,如公司Borland公司的开源社区的NASM SteveMASM 最先广泛使用的一个MASM版本,适用于DOS下的汇MASM5.00 开始支持.code.data写法的段定义格式(即“简化段定义格1992年发布,可执行文件名从Masm.exe改为MASM

开始支持.if/.endif这样的高级语开始支持invoke伪指令来简化带参数的子程序调MASM 2000年4月发MASM 随VS2005一起发布,是目前为止的版开发DOS程序的Masm地址 指示性语指令性语

指示性语

[名字 操作码/伪操作码[操作数 [;注释名 操作/伪操作

操作 注名指令性语

段偏移类

移量类指示性语

段偏移类

段偏移量类操作码/伪操作操作伪操作程序(masm.exe)操作常数、寄存器、标号、变量表达常寄存ES、SS、CS标

变表达数值表达地址表达

DX,

运算①算术运算符,如+、-、*、/和MOD(模除。②逻辑运算符,如AND、OR、XOR和;这里的AND是指令助记 11110000B;这里的AND是逻辑运算③关系运算符如EQ(等于)、NE(不等)、LT(小于)、GT(大于)LE(小于或等于)、GE(大于或等于)等 AX,4EQ ;关系不成立,故(AX) NE ;关系成立,故(AX)④分析运算符和合成运算符如OFFSET、SEG、TYPE、和LENGTH等;合成运算符有PTR、THIS、SHORT等

SI, SI ,,

TYPE运算符的例 ‘Thisisa,;(AX)←,;(BX)←,;(CX)← SIZE PTR[BX][SI DUP方括号,,段运算符“: AX,ES:HIGH和AH,;(AH)← ,;(AL)←0CD优先级高的先运算,优先级低的后运算同一优先级按表达式中从左到右的顺序进行运算圆括号可提升运算优先级,圆括号内的运算符总是在其任何相邻的运算之前进行。 MASK,(),[],<

+,-(二元运算符·(结构变量名后面的运算符 :(段符

+,-(一元运算符 低注

;目标程伪指伪指令与CPU指令的区别汇编程目标代下面列出 o例”的汇编源码及其对应的机器1449:MOVAX, MOVAX1449: (这里也揭示了操作码和伪操作码的另一个区别处理器方式伪操 .8086、数据定义伪操 DB、DW、DD、符号定义伪操 EQU、=、段定义伪操 SEGMENT/ENDS、过程定义伪操 列表伪操 .LIST、TITLE、其他伪操 COMMENT、处理器方式伪操 汇编编译 数据定义伪操[变量名 伪操作操作数[,操作数见见100,;存入2*3+;存入‘E!’;存入8个字;存入;存入;存入42H;存入变量AB的偏移地;依次存入变量AB的偏 ;依次存入? DUP初值ZERODW30 DUP( DUP(?) DUPOK;存入5个‘OK!’,共15节符号定义伪操 符

EQU、=、名字 表达用名字代替一个数值,或一个较长的表达式:HPIXEL*=名字 表达类似EQU,区别在于“=”可以对一个名字重复定义 COUNT= CX, ;(CX)COUNT=COUNT- BX, ;(BX)

名字 表达定义标号或变 AREAW, ;AX送AREAW的第1、2字节段定义伪操

SEGMENT/ENDS、SEGMENT [定位类型 [组合类型 [‘类别定义一个逻辑 DUP(?) 定位类

PARA、BYTE、WORD和ASSUME段寄存器:[,段寄存器:[,…]]“”可以是曾用SEGMENT操作符定义过的一个,或是在一个标号或变量前面加上SEG构成的表达式,还可以是关键字NOTHING CS: DS: SS: DS: ES ;取消前面ASSUME对ES的设过程定义伪操 PROC/PROC/过程名 [NEAR/FAR过程名定义一个过程,赋予过程一个名字,并过程的类型,并该过程的类型是NEAR或FAR。如果没有特别指明,则认当定义一个过程后,程序中其他地方可以用L指令调用这个过程,或用转移指令转向这个过程,另外也可以顺序执行。调用的格式为:LL 过程名。段、偏移 类符NAME、END、

模块指定源文件汇 [标号表示源程序到此结束,对于END后面语 符号将被连接在一起的其他模块使用“符号”可以是本模块中定义的变量、标号或数字,包括用PROC定义的过程 名字:类型[,说明本模块中所用的某些符号是外部的,即这些符号在将被连接在一起的其他模块中定义(定义这些符号的模块中还必须用L说明)。 宏调过 宏扩 过过 空 时宏指令 宏定义体)将宏指令名定义为宏定义体中包含的程序段宏定义伪操 参DECADDMACROOPR1,MOVAL,OPR1ADDAL,OPR2MOVOPR1,AL INT用户程序控制PC机硬件的方使用高级语言提供的功能控制硬使用DOS使用BIOS提供的程序控制硬直接硬8086指令系统中,有一条软中断指令INTn当n=5~1FH时,调用BIOS服务程序当n=20~3FH时,调用DOS服务程序 系统功能调 28H- DOS系统功能调 置系统功能号n(放入置参执行INT分析出口参 AH AH1ALAL ;输入其他字符,退回继续等待输YES 显示服键盘服关于BIOS中断的所有中断号内容(从05H~1FH),参见书附录置系统功能号n(放入置参INT分析出口参读键盘读扩展键盘功能键按下F1和F2键,分别执行两段同的程序,按其他键则转至错误处理F1F2 AH, ;执行调 AL ;若为字符键,转 AH ;F1键码 AH ;F2键码 ;处F1键功 ;处F2键功 同样的功能,往往既可以BIOS中断调用来实现,也可以用DOS,9;显示字,;字,;0表示背景黑色,0Ch,0;第0,8;字符重复个提示提示(比如窗口一闪而过可使用debug加载然后输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论