微机原理及接口 C0402_第1页
微机原理及接口 C0402_第2页
微机原理及接口 C0402_第3页
微机原理及接口 C0402_第4页
微机原理及接口 C0402_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术1. 汇编语言源程序与汇编程序n汇编源程序n助记符编写n汇编程序n源程序的编译器汇编源程序汇编程序机器语言目标程序汇编语言程序设计与执行过程n输入汇编语言源程序n汇编( MASM ) n链接( LINK )n调试( DEBUG )源文件.asm目标文件.obj可执行文件.exe最终程序2. 汇编语言语句类型和格式n汇编语言语句类型语句类型:n指令性语句n指示性语句CPU执行执行语句,能够生成目标代码CPU不执行不执行,由汇编程序执行的语句,不生成目标代码汇编语言语句类型和格式n汇编语言语句格式语句格式:n指令性语句指令性语句标号:标号: 前缀前缀 助记符助记符 操作数操作数,

2、 操作数操作数 ; 注释注释操作码REPJMP NEXTNEXT:MOV指令的指令的符号地址符号地址标号后应有冒号汇编语言语句类型和格式n汇编语言语句格式语句格式:n指示性语句指示性语句名字名字 伪指令助记符伪指令助记符 操作数操作数 , 操作数操作数, 操作数操作数 ; 注释注释指示性语句中至少有一个操作数变量的变量的符号地址符号地址无冒号3. 汇编语言语句中的操作数n寄存器n存储器单元n常量n变量或标号n表达式常量n数字常量n字符串常量n例nMOV AL, A n; AL=41Hn例nMOV DWORD PTRBXABCD单引号引起的字符或字符串变量n变量:内存单元的符号地址,为存储器操作

3、数n变量属性:n段值变量所在段基址n偏移量变量所指单元的偏移地址n类型字节型、字型和双字型表达式n算术运算n逻辑运算n关系运算n取值运算和属性运算n其他运算取值运算符n用于分析存储器操作数的属性n获取变量的两个属性值nOFFSET:取得其后变量或标号的偏移地址nSEG:取得其后变量或标号的段基址n例:MOV AX, SEG DATAMOV DS, AXMOV BX, OFFSET DATA;=LEA BX, DATA属性运算符n用于指定其后存储器操作数的类型n运算符:PTRn例:nMOV BYTE PTRBX, 12HnMOV WORD PTRBX, 12H存储器操作数BX为字节型常用伪指令n

4、数据定义伪指令n符号定义伪指令n段定义伪指令n结束伪指令n过程定义伪指令n宏命令伪指令一、数据定义伪指令n用于定义数据区中变量的类型及所占空间大小n格式变量名变量名 伪指令助记符伪指令助记符 操作数操作数 , 操作数操作数, 操作数操作数 ; 注释注释名字名字 伪指令助记符伪指令助记符 操作数操作数 , 操作数操作数, 操作数操作数 ; 注释注释变量的类型和操作数的个数决定了变量占用空间大小变量的类型和操作数的个数决定了变量占用空间大小定义变量类型变量值,可以是常数,表达式或字符串。大小不能超过伪指令助记符限定的范围符号地址数据定义伪指令例nM1 DB How are you?nM2 DW 3

5、 DUP (11H), 3344HnDB 4 DUP (?)nM3 DB 3 DUP (22H, 11H, ?)三、段定义伪指令n在汇编程序中定义逻辑段n说明逻辑段的起始与结束n说明不同程序模块中同类逻辑段之间的联系形态n格式段名 SEGMENT 定位类型 组合类型 类别段名 ENDS逻辑段的段基址段基址说明逻辑段的起点 装入内存时各逻辑段的组合方式 链接时不同程序模块中的同类逻辑段将被装入连续存储区四、设定段寄存器伪指令n说明所定义逻辑段的性质n格式nASSUME 段寄存器名: 段名, 段寄存器名: 段名, 过程定义伪指令n用于定义一个过程n格式:过程名过程名 PROC NEAR/FARRE

6、T过程名过程名 ENDP过程入口符号地址CALL主程序子程序调用RET过程定义及调用例定义延时子程序DELAY PROCPUSH BXPUSH CXMOV BL, 2 NEXT: MOV CX, 4167 W10M: LOOP W10MDEC BLJNZ NEXTPOP CXPOP BXRETDELAY ENDP调用延时子程序:调用延时子程序:CALL DELAY宏命令伪指令n宏:n源程序中由汇编程序识别的,具有独立功能的一段程序n当源程序中需要多次使用同一个程序段时,可将该程序段定义为一个宏n格式:宏命令名 MACRO ENDM 宏体宏定义与宏调用例n定义宏:DADD MACRO X, Y,

7、 ZMOV AX, XADD AX, YMOV Z, AXENDMn调用宏:DADD DATA1, DATA2, SUMn宏展开:MOV AX, DATA1ADD AX, DATA2MOV SUM, AX调整偏移量伪指令n规定程序或变量在逻辑段中的起始地址n默认情况下,程序或变量在逻辑段中的起始偏移地址为:0n利用ORG指令,可以改变程序或变量的起始偏移地址n格式:nORG 表达式n例:DATA SEGMENTORG 1200HBUFF DB 1, 2DATA ENDS系统功能调用n调用调用BIOS功能功能/DOS功能功能nBIOSn驻留在ROM中的基本输入/输出系统n加电自检,装入引导,主要

8、I/O设备处理及接口控制nDOSn磁盘操作系统nBIOS功能功能/DOS功能调用是调用系统内核子程序功能调用是调用系统内核子程序nBIOS功能功能/DOS功能均功能均通过中断调用通过中断调用BIOS中断DOS中断中断DOS软中断nDOS中断包括:设备管理、目录管理、文件管理设备管理、目录管理、文件管理等n用中断类型码区分nDOS软中断:n类型码21HDOS软中断n关于DOS软中断说明:n包含多个子功能的功能包n各子功能用功能号区分n用软中断指令调用,中断类型码固定为21HDOS功能调用的基本步骤1.将调用参数装入指定寄存器2.将功能号装入AH3.按中断类型码调用DOS中断4.检查返回参数是否正

9、确5.调用格式MOV AH, 功能号INT 21H1. 单字符输入n调用方法:MOV AH, 01INT 21Hn输入字符存储在AL单字符输入例GET KEY: MOV AH, 1 INT 21HCMP AL, YJZ YESCMP AL, NJZ NOJMP GET KEYYES: NO: 交互式应答程序2. 字符串输入n接收由键盘输入的一串字符n输入的字符串存储在内存指导区域中n用户自定义缓冲区格式:字符输入缓冲区字符输入缓冲区2. 字符串输入n字符串输入功能号n10n缓冲区须定义在数据段n方法:nAH功能号nDS: DX字符串在内存中的存放地址nINT 21H输入字符串程序段DAT1 D

10、B 20, ?, 20 DUP (?)LEA DX, DAT1MOV AH, 0AHINT 21H数据段中定义输入缓冲区定义后的输入缓冲区初始状态:DAT1 DB 20, ?, 20 DUP (?)LEA DX, DAT1MOV AH, 0AHINT 21H14HXXODH20个字节存储输入的字符3. 单字符显示输出nAH 功能号2nDL 待输出字符nINT 21Hn例:nMOV AH, 2nMOV DL, 41H ; A的ASCII码nINT 21H 4. 字符串显示输出nAH 功能号9 nDS: DX 待输出字符串偏移地址nINT 21Hn比照:字符显示输出nAH 功能号2 nDL 待输出

11、字符nINT 21H字符串输出显示n注意:n被显示的字符串必须以$结束n显示的内容不应有非可见的ASCII码n若有输出格式要求,在定义字符串后,加上回车符和换行符字符串输出显示例DATA SEGMENTMESS1 DB Input String:, 0DH, 0AH, $ DATA ENDSCODE SEGMENTMOV AH, 09MOV DX, OFFSET MESS1INT 21H 5. 返回操作系统(DOS)功能n功能号n4CHn调用格式:nMOV AH, 4CHnINT 21n功能:n程序执行完后,能正常返回OSn常位于程序结尾处DOS功能调用小结n通过中断指令调用,1个中断类型码对

12、应1个功能程序包n 功能包中的子功能通过功能号区分,调用时功能号送AHn注意不同子功能的入口/出口参数要求DOS和BIOS中断均可能影响AX程序设计例1n画出以下数据区在内存中是如何存储的?DATA SEGMENTNAMES DB TOM., 20DB KATE, 25DATA ENDST54H4FH4DH2EH14H41H54H45H4BH19HOM.20KATE25NAMES变量在内存中的存储(16进制)程序设计例1:阅读程序段,说明该程序段的功能DATA SEGMENTA DB 123ABCDATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATASTART: MOV AX, DATAMOV DS,

温馨提示

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

评论

0/150

提交评论