微机原理与接口技术4-3汇编语言中的伪指令_第1页
微机原理与接口技术4-3汇编语言中的伪指令_第2页
微机原理与接口技术4-3汇编语言中的伪指令_第3页
微机原理与接口技术4-3汇编语言中的伪指令_第4页
微机原理与接口技术4-3汇编语言中的伪指令_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、 例例:已知定义变量已知定义变量 ARR1 DB 00H,11H,22H,33HARR2 DW 3456H,1024,2525,1000/3,10A0HARR100H11H22H33HARR256H34H00H04H71H02H4DH01HA0H10H0123456789ABCDEARR1的偏移地址是的偏移地址是 0ARR2的偏移地址是的偏移地址是 4MOV AX , ARR2 ; (AX) = ?MOV AX , OFFSET ARR2 ; (AX) = ?MOV AL , BYTE PTR ARR2 + 5 ; (AL) = ? MOV AX ,WORD PTR ARR1 ; (AX) =

2、 ?1、段定义语句、段定义语句格式:格式: 段名段名 SEGMENT 段名段名 ENDS 2、段寄存器指派语句、段寄存器指派语句 格式:格式: ASSUME 段寄存器:段名段寄存器:段名 ,段寄,段寄存器:段名存器:段名.n功能:指明段与段寄存器之间关系功能:指明段与段寄存器之间关系 ASSUME语句仅仅约定了对逻辑段进行寻址操作时使用语句仅仅约定了对逻辑段进行寻址操作时使用哪个段寄存器,而段寄存器的初值还必须在程序中用指令设置。哪个段寄存器,而段寄存器的初值还必须在程序中用指令设置。 对对CS的赋值是由操作系统系统自动完成的,程序员不用的赋值是由操作系统系统自动完成的,程序员不用设置。设置。

3、格式:格式: 过程名过程名 PROC 类型类型 RET 过程名过程名 ENDP说明:说明:q(1)PROC表示过程的开始,表示过程的开始,ENDP表示过程的结束。表示过程的结束。q(2)在过程中要有一个)在过程中要有一个RET指令使其返回指令使其返回主程序。主程序。q(3)每个过程要有一个过程名,通过该名其他程序可)每个过程要有一个过程名,通过该名其他程序可以调用该过程。以调用该过程。q(4)过程中有类型说明)过程中有类型说明FAR或或NEAR说明说明该过程是该过程是远过程还是近过程。远过程还是近过程。 SOFDLY PROC PUSH BX PUSH CX MOV BL , 10 DELAY

4、: MOV CX , 2801 WAIT: LOOP WAIT DEC BL JNZ DELAY POP CX POP BX RET SOFDLY ENDP .DATA SEGMENT S DW ?,?,?DATA ENDSCODE SEGMENT ASSUME CS: CODE,DS: DATA START : MOV AX ,DATA MOV DS ,AX MOV AL ,30H ADD AL ,20H MOV BL ,80H MUL BL MOV BX , 185H SUB DX , DX DIV BX MOV S , AX MOV S + 2 , DX CODE ENDS END ST

5、ART编制汇编语言程序的步骤:编制汇编语言程序的步骤:明确任务,确定算法;明确任务,确定算法;绘制流程图;绘制流程图;根据流程图编写汇编程序语言;根据流程图编写汇编程序语言;1.上机调试。上机调试。程序的基本结构有四种:程序的基本结构有四种:顺序结构顺序结构分支结构分支结构循环结构循环结构子程序结构子程序结构 例例1 编程计算编程计算 S = DATA SEGMENT S DW ?,?,? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START : MOV AX ,DATA MOV DS ,AX MOV AL ,30H ADD AL ,20H M

6、OV BL ,80H MUL BL ;结果在;结果在AX中。中。80H(30H+20H)185H加法加法ADD乘法乘法扩展扩展除法除法存结果存结果结束结束 MOV BX , 185H SUB DX , DX ; 扩展被除数为双字扩展被除数为双字/字字 DIV BX MOV S , AX ; 存商存商 MOV S + 2 , DX ;存余数;存余数 CODE ENDS END START 在编写顺序程序时,要考虑以下内容:在编写顺序程序时,要考虑以下内容: 1、如何组织初始、中间、结果数据。采用的寻址方式,使用、如何组织初始、中间、结果数据。采用的寻址方式,使用的寄存器。的寄存器。 2、计算的顺

7、序,用变量、寄存器、还是堆栈保存中间结果,、计算的顺序,用变量、寄存器、还是堆栈保存中间结果,有时需预留、预清除、预设置一些寄存器。有时需预留、预清除、预设置一些寄存器。 3、指令与指令之间的衔接。、指令与指令之间的衔接。条件条件S1S2YN分支程序结构也称为条件结构,通常有两种形式,分支程序结构也称为条件结构,通常有两种形式,一种是两分支结构(一种是两分支结构(IF_THEN_ELSE),一种是多一种是多分支结构(分支结构(CASE结构即选择结构)。结构即选择结构)。条件条件S1S2Sn双分支程序双分支程序例例1:已知在内存中,有一个字节单元:已知在内存中,有一个字节单元X存有带符号存有带符

8、号数据,计算出它的绝对值后并放入数据,计算出它的绝对值后并放入RESULT单元中。单元中。多分支程序多分支程序例例2:编程计算下列函数的值:编程计算下列函数的值: Y=1 (X0)0 (X=0)-1 (X0) 当要进行多次重复操作时采用循环设计。常见的循环程序结构有当要进行多次重复操作时采用循环设计。常见的循环程序结构有两种:两种:WHILLE_DO结构和结构和DO_UNTIL结构,结构框图如下:结构,结构框图如下:循环初始状态循环初始状态循环体循环体循环控循环控制条件制条件YN循环初始状态循环初始状态循环体循环体循环控循环控制条件制条件YNWHILLE_DO结构DO_UNTIL结构循环程序设

9、计分为三部分循环程序设计分为三部分:1、设置初始部分:设置初始部分:设置循环次数,设置循环次数,地址指针或其它初始状态。地址指针或其它初始状态。2、循环体:循环体:包括工作部分和修改包括工作部分和修改部分。部分。3、循环控制部分:循环控制部分:控制循环次数控制循环次数。 开始初始化循环体修改部分控制结束YN 事先已知循环次数,每次循环加或减事先已知循环次数,每次循环加或减计数,并判定总次数以达到控制循环。计数,并判定总次数以达到控制循环。事先不知循环次数,在循环时判定某事先不知循环次数,在循环时判定某种条件的真假达到控制循环。种条件的真假达到控制循环。事先设定二进制位的状态,或由外界事先设定二

10、进制位的状态,或由外界干预,测试开关状态,决定循环。干预,测试开关状态,决定循环。DATA SEGMENT AB DW 0123H,2A00H,52EFH 0700H,7255H SUM DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX ,DATA MOV DS ,AX MOV CX ,05 MOV AX ,0 LEA SI ,AB 01000H01002H01004H01006H01008H23H01H00H2AHEFH52H00H07H55H72H开始开始初始初始 SI、CXCX = 0?相加相加修改修改 SI结束结

11、束和存和存 SUMNY控制计数循环控制计数循环例:累加从地址例:累加从地址 ABAB开始的开始的 5 5 个字的內容,并将和个字的內容,并将和存入存入SUMSUM单元(一个字长)。单元(一个字长)。 INC SI ;修改指针;修改指针 若用若用ADD SI ,2 INC SI 则则 PUSHF LOOP REG ;CX - 1,CX 0循环。循环。 ADD SI ,2 MOV SUM ,AX POPF 因为因为ADD影响影响 CF CODE ENDS END START 此题,累加和的结果是一个字,若和超出一个字,应开始此题,累加和的结果是一个字,若和超出一个字,应开始 SUM DW ?,?,

12、? MOV DX ,0 在在REG:ADD AX ,SI ADC DX ,0 INC SI INC SI LOOP REG MOV SUM ,AX MOV SUM+2,DX例:编程序统计例:编程序统计 AX 寄存器中寄存器中 1 的个数。的个数。CODE SEGMENT ASSUME CS:CODESTART: MOV CX , 0 ;存存 1 的个数的个数AGAIN: TEST AX , 0FFFFH JZ B SAL AX , 1 JNC A INC CX A: JMP AGAIN B: HLT CODE ENDS END START初始初始 CX = 0AX = 0 ?逐位移到最高位逐位移到最高位CF = 1 ?CX结束结束继续继续YNYN BEGIN :IN AL ,52H ;从状态口读;从状态口读 TEST AL

温馨提示

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

评论

0/150

提交评论