汇编简化段格式演示文稿_第1页
汇编简化段格式演示文稿_第2页
汇编简化段格式演示文稿_第3页
汇编简化段格式演示文稿_第4页
汇编简化段格式演示文稿_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、完整段定义格式DATA SEGMENT;定义数据段;定义数据DATA ENDS;数据段结束STACK SEGMENT STACK;定义堆栈段;分配堆栈段的大小STACK ENDS;堆栈段结束CODE SEGMENT CODE;定义代码段ASSUME CS:CODE,DS:DATA,SS:STACK ;CS/DS/SS指向的逻辑段START:MOV AX,DATA;设置数据段的段首址MOV DS,AX ;程序代码MOV AH,4CH;返回操作系统INT 21HCODE ENDS;代码段结束END START;汇编结束简化段定义格式.MODEL SMALL ;定义程序的存储模式,一般采用SMALL

2、.386;程序中可使用386指令.STACK;定义堆栈段,默认为1024Byte.DATA;定义数据段,一般放具有初值的变量;数据定义.DATA?;定义数据段,一般放不具有初值的变量;数据定义.CODE;定义代码段.STARTUP;程序启动点, ;代码定义.EXIT;程序结束END;汇编结束分支程序设计(选择结构)分支控制伪指令的格式是: .IF 条件表达式分支体.ELSEIF 条件表达式分支体.ELSE分支体.ENDIF方括号内的部分为可选项。分支体是汇编指令。条件表达式是变量、常量、寄存器等用操作符连接在一起生成的表达式。条件表达式中可用的操作符见下表。操作符功能操作符功能操作符功能= =

3、等于&逻辑与CARRY?CF=1?!=不等于|逻辑或OVERFLOW?OF=1?大于!逻辑非PARITY?PF=1? =大于等于SIGN?SF=1? 小于&位测试ZERO?ZF=1?= 0 MOV Y,EAX .ELSE NEG EAX MOV Y,EAX .ENDIF .EXITEND循环程序设计循环控制伪指令MASM6.X提供了类似高级语言的循环控制伪指令,使编写汇编程序更简单。学完这些伪指令以后,您会再次体会到像使用C语言一样来编写汇编程序。这些循环控制伪指令是:.WHILE/.ENDW :用于先判断再执行的方式。.REPEAT/.UNTIL与.REPEAT/.UNTIL

4、CXZ :用于先执行再判断方式。.BREAK :退出循环。.CONTINUE :终止本次循环,开始下一次循环。1.WHILE/.ENDW.WHILE/.ENDW伪指令的格式是:.WHILE 条件表达式循环体.ENDW.REPEAT/.UNTIL伪指令的格式是:.REPEAT循环体.UNTIL 条件表达式.REPEAT/.UNTILCXZ伪指令的格式是:.REPEAT循环体.UNTILCXZ 条件表达式;CX-1CX,直到条件为真并且CX=0.BREAK 格式:.BREAK.IF条件表达式功能: .BREAK .IF条件表达式 当条件表达式为真时无条件退出当前循环。 .BREAK 无条件退出当前

5、循环。.CONTINUE 格式:.CONTINUE.IF条件表达式功能: .CONTINUE .IF条件表达式 当条件表达式为真时终止本次循环,开始下一次循环。 .CONTINUE 无条件终止本次循环,开始下一次循环。阅读程序,填空,做思考题。程序功能:从BUF开始的11个单元中,存放着11个整数,统计其中正数并且是偶数的个数,存入R中。DATA SEGMENTBUF DB 2,5,-3,6,100,0,-20,-9,8,-10,21N= R DW ?DATA ENDSCODE SEGMENT CODE BEGIN:MOV AX,DATA LEA BX,BUFMOV CX,N LOPA:CMP

6、 BX,BYTE PTR 0 TEST BX,BYTE PTR 1 INC AXNEXT:INC BXDEC CX MOV R,AXMOV AH,4CHINT 21HCODE ENDSEND BEGINDATA SEGMENT BUF DB -2,5,-3,6,100,0,-20,-9,8,-10,21 N=$-BUF R DW ?DATA ENDSCODE SEGMENT CODE ASSUME CS:CODE,DS:DATABEGIN:MOV AX,DATA MOV DS,AX LEA BX,BUF MOV CX,N MOV AX,0LOPA: CMP BX,BYTE PTR 0 JLE

7、NEXT TEST BX,BYTE PTR 1 JNZ NEXT INC AXNEXT: INC BX DEC CX JNZ LOPA MOV R,AX MOV AH,4CH INT 21HCODE ENDS END BEGIN.MODEL SMALL.386.STACK.DATA BUF DB -2,5,-3,6,100,0,-20,-9,8,-10,21 N=$-BUF.DATA? R DW ?.CODE .STARTUP LEA BX,BUF MOV CX,N MOV AX,0 .WHILE CX != 0 .IF (SBYTE PTR BX 0) & !(SBYTE PTR BX & 1)INC AX .ENDIF INC BX DEC CX .ENDW MOV R,AX .EXITEND.MODEL SMALL.386.STACK.DATA BUF DB -2,5,-3,6,100,0,-20,-9,8,-10,21 N=$-BUF.DATA? R DW ?.CODE .STARTUP LEA BX,BUF MOV CX,N MOV AX,

温馨提示

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

评论

0/150

提交评论