电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

西北工业大学微机原理汇编语言程序设计课件

  • 资源ID:144102495       资源大小:304.50KB        全文页数:23页
  • 资源格式: PPT        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

西北工业大学微机原理汇编语言程序设计课件

第四章 汇编语言程序设计,4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计,4.1 汇编语言,4.1.1 汇编语言及语句格式 汇编 汇编语言源程序 目标程序 1、指令语句 标号: 助记符 操作数 ;注释 2、伪指令语句 名字 定义符 参数 ;注释,4.1.2 数据定义伪指令格式 DB DW 变量 DD 表达式1,表达式2, DQ DT 此伪指令把存储单元中的数与一个变量联系起来。其中:DB-字节类型 DW-字类型 DD-双字类型 DQ-四字类型 DT-五字类型,格式中表达式可以是: 1、一个或多个常数/数值表达式 例如 2、不带引号的?或带引号的字符串 例如 3、重复方式DUP 格式:变量 定义符 表达式1 DUP(表达式2) 其中,表达式1为重复次数 表达试2为重复内容 例如 4、定义过的变量/标号 如 DATA11 DW DATA1 DATA12 DD DATA2 GO,DATA1 DB 30H DATA2 DW 0240H,3500H DATA1 DATA3 DB (-1*3),(16/4) DATA2 DATA4 DD 34567H DATA3 DATA4 返回,DATA5 DB ? DATA6 DW ? DATA5 DATA7 DB ABCD DATA6 DATA8 DW AB,CD DATA7 DATA8 返回,DATA9 DW 2 DUP (?) DATA10 DB 2 DUP(5,2 DUP(0) DATA9 DATA10 返回,变量和标号的属性 变量定义数据的逻辑地址,其属性有段属性、偏移地址属性、类型属性。 其类型属性如下:BYTE-字节 WORD-字 DWORD-双字 PWORD-三字 QWORD-四字 TWORD-五字 标号定义指令的逻辑地址,其属性有段属性、偏移地址属性、距离属性。 其距离属性如下:NEAR-近程(默认) FAR-远程,4.1.3 段定义伪指令格式 1、简化的段定义伪指令 .MODEL-内存模式说明 (TINY、SMALL、MEDIUM、COMPACT、LARGE) .X86-选择80X86指令系统 .X86P-选择80X86保护模式指令系统 .DATA-定义数据段 .STARTUP指示程序开始,初始化DS,SS .CODE-定义代码段 .STACK-定义堆栈段 .EXIT-返回操作系统,2、完整的段定义伪指令 (1)段定义伪指令 段名 SEGMENT 属性 段名 ENDS (2)段寄存器定义伪指令 ASSUME 段寄存器1:段名1,段寄存器2:段名2, 4.1.4汇编结束伪指令 对于简化的段结构程序,汇编结束伪指令格式: END 对于完整的段结构程序,汇编结束伪指令格式: END 标号,4.2 顺序结构程序,例1 将一个2位数压缩的BCD码转换成二进制数. .MODEL SMALL MUL BH .DATA ADD AL,BL BCD DB 01011001B MOV BIN,AL BIN DB ? .EXIT .CODE END .STARTUP MOV AL,BCD MOV BL,AL AND BL,0F H AND AL,0F0H MOV CL,4 ROR AL,CL MOV BH,0AH,4.3 分支程序设计,例1 用比较指令 CMP DEST,SRC JE EQUL EQUL: 用测试指令 TEST DEST,SRC JNZ NEXT NEXT: 用逻辑指令 SHR DEST,CL JC NEXT NEXT:,例2 编程实现将键盘输入的小写字母转换成大写后输出。 .MODEL SMALL MOV DL,AL .DATA MOV AH,02H BLOCK DB ERROR!,0DH,0AH,$ INT 21H .CODE JMP DONE .STARTUP NEXT:LEA DX,BLOCK MOV AH,1 MOV AH,9 INT 21H INT 21H CMP AL, a DONE:.EXIT JB NEXT END CMP AL, z JA NEXT AND AL, 11011111B,4.4 循环程序设计,例1 MOV CX,COUNT AGAIN: LOOP AGAIN MOV CL,COUNT AGAIN: DEC CL JNZ AGAIN MOV CX,COUNT AGAIN:JCXZ NEXT JMP AGAIN NEXT:,例2 在内存BLOCK开始处存放了10个无符号字节数,从中找出最大值送入MAX单元中。,.MODEL SMALL .DATA BLOCK DB 100,60,20, MAX DB ? .CODE .STARTUP MOV CX,9 MOV AL,BLOCK LEA BX,BLOCK AGAIN:INC BX CMP AL,BX JAE NEXT,XCHG AL,BX NEXT:LOOP AGAIN MOV MAX,AL .EXIT END,例3 多位十进制数相加:02233585+03703994,两数在内存中以DATA1 和DATA2为首址存入,各分配4个字节单元,以其8位组合BCD码存入(低位在前),两数相加结果(组合BCD码)送回DATA1处。,.MODEL SMALL .DATA DATA1 DD 02233585H DATA2 DD 03703994H .CODE .STARTUP LEA SI,DATA1 LEA DI,DATA2 CLC MOV CX,4,AGAIN:MOV AL,SI ADC AL,DI DAA MOV SI,AL INC SI INC DI LOOP AGAIN .EXIT END,例4 在首地址BLOCK处存放了10个字数据(无符号数),编程求其和,存入SUM单元。,.MODEL SMALL .DATA BLOCK DW 1020H,3040H, SUM DD ? .CODE .STARTUP MOV CX,10 LEA SI,BLOCK MOV AX,0 MOV DX,0 AGAIN:ADD AX,SI,ADC DX,0 INC SI INC SI LOOP AGAIN MOV SUM,AX MOV SUM+2,DX .EXIT END,例4 方法二,.MODEL SMALL MOVZX EBX,BX .DATA ADC EAX,EBX BLOCK DW 1020H,3040H, INC SI SUM DD ? INC SI .CODE LOOP AGAIN .STARTUP MOV SUM,EAX MOV CX,10 .EXIT LEA SI,BLOCK END MOV EAX,0 CLC AGAIN:MOV BX,SI,例5 两位十进制数乘法:2580,被乘数和乘数以组合BCD码形式存于DATA1和DATA2两字节单元中,经乘法运算,乘积以组合BCD码形式存入DATA3定义的两个内存单元中。,.MODEL SMALL MOV CL,AL .DATA MOV CH,0 DATA1 DB 25H MOV BL,DATA2 DATA2 DB 80H MOV AX,0 DATA3 DW ? CLC .CODE AGAIN:ADC AL,BL .STARTUP DAA MOV AL,DATA1 XCHG AH,AL MOV BL,AL ADC AL,0 AND BL,0FH DAA AND AL,0F0H XCHG AH,AL MOV CL,4 LOOP AGAIN ROR AL,CL MOV DATA3,AX MOV BH,0AH .EXIT MUL BH END ADD AL,BL,例6 将内存首地址为BLOCK开始的10个带符号字节数,将其按由大到小的次序排列。,.MODEL SMALL .DATA BLOCK DB 66H,88H,10H, .CODE .STARTUP MOV DI,9 LOOP1:MOV CX,DI MOV BX,0 LOOP2:MOV AL,BLOCKBX CMP AL,BLOCKBX+1 JGE NEXT XCHG AL,BLOCKBX+1 MOV BLOCKBX,AL,NEXT:INC BX LOOP LOOP2 DEC DI JNZ LOOP1 .EXIT END,4.5 子程序设计,4.5.1 过程定义 过程名 PROC TYPE USES REG RET (或RET n) 过程名 ENDP 其中,TYPE 包括: NEAR FAR USES REG:要保护的通用寄存器 如 SUB1 PROC USES AX,BX,CX RET 等效于 SUB1 ENDP,SUB1 PROC PUSH AX PUSH BX PUSH CX POP CX POP BX POP AX RET SUB1 ENDP,4.5.2 调用与返回指令 1、调用指令 CALL 过程名 CALL FAR PTR 过程名 CALL 过程名为段内调用,系统将: EIP(IP) 堆栈 新偏移地址 EIP(IP) CALL FAR PTR 过程名为段间调用,系统将: CS 堆栈 EIP(IP) 堆栈 新偏移地址 EIP(IP) 新段基址 CS 2、返回指令 RET 或 RET n,例1 输入一个字符,

注意事项

本文(西北工业大学微机原理汇编语言程序设计课件)为本站会员(我***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.