ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:31.35KB ,
资源ID:18226      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18226.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言程序例题知识讲解.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言程序例题知识讲解.docx

1、汇编语言程序例题知识讲解 程汇题例序言语编精品文档 【例5.1】试编写一程序计算以下表达式的值。 =(v-(*+-540)/x 式中x、v均为有符号字数据。 设、的值存放在字变量、V中,结果存放在双字变量之中,程序的流程图如图5.1所示。 DATA SEGMENT DW 200 X DW Y 100 DW Z 3000 DW V 10000 DW 2 DUP(?) W DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS 收集于网络,如有侵权请联系管理员删除精品文档 CODE SEGMENT ASSUME DS:DATA,CS: CODE

2、,SS:STACK START: MOV AX,DATA MOV DS,AX ;DATAAX X ,MOV AX AX (*Y)DX:IMUL Y ;(X) MOV CX,AX MOV BX,DX ;( DX:AX)(BX:CX) Z ,MOV AX )符号扩展 ;(Z CWD ADD CX ,AX ADC BX,DX ;(BX :CX)+(DX:AX)( BX:CX) SUB CX, 540 SBB BX,0 ;(BX:CX )-540(BX:CX) V ,MOV AX CWD ;( V)符号扩展 SUB AX,CX SBB DX,BX ;(DX:AX)- (BX:CX)(DX:AX) ;(

3、DX:AX )/X IDIV X MOV W,AX ;商W ;余数 DX MOV W+2,DXW+2 收集于网络,如有侵权请联系管理员删除精品文档 MOV AH,4CH INT 21H ENDS ;退出DOS 状态 CODE END START 【例5.2】已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在TAB表中,要查的学生的学号放在变量NO中,查表结果放在变量ENGLISH中。编写程序如下: STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT TAB DB 80,85,86,71,79,96 DB 83,56,32

4、, 66,78,84 NO DB 10 DB ? ENGLIST DATA ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE BEGIN:MOV AX,DATA MOV DS ,AX LEA BX,TAB MOV AL,NO DEL AL XLAT TAB MOV ENGLISH, AL MOV AH, 4CH INT 21H CODE ENDS 收集于网络,如有侵权请联系管理员删除精品文档 END BEGIN 【例5.3】已知在内存中有一个字节单元NUM,存有带符号数据,要求计算出它的绝对值后,放入RESULT单元中。 题目分析:根据数学中绝

5、对值的概念知道,一个正数的绝对值是它本身,而一个负数的绝对值是它的相反数;要计算一个数的相反数,需要完成减法运算,即用0减去这个数。8086/8088指令系统中有专门的求相反数的指令NEG。 DATA SEGMENT X DB -25 RESULT DB ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX ;初始化 MOV AL,X ;X取到AL中 ;测试AL正负 TEST AL,80H JZ NEXT ;为正,转NEXT 收集于网络,如有侵权请联系管理员删除精品文档 NEG AL ;否则AL

6、求补 NEXT: MOV RESULT,AL ;送结果 MOV AH,4CH INT 21H ;返回DOS CODE ENDS END START 【例5.4】编写计算下面函数值的程序: 1 X0 Y= 0 X=0 -1 X0 设输入数据为X、输出数据Y,且皆为字节变量。程序流程图如下图所示。 DATA SEGMENT X DB -25 Y DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA 收集于网络,如有侵权请联系管理员删除精品文档 MOV DS,AX ;初始化 MOV AL,X ;X取到AL中 CMP

7、AL,0 ;Al中内容和0比较 JGE BIG ;大于等于0,转BIG MOV BL,-1 ;否则为负数,1送 BL JMP EXIT ;转到结束位置 EE ;Al中内容是否为0,为0转EE BIG: JE MOV BL,1 ;否则为大于0,1送BL JMP EXIT ;转到结束位置 BL,0 ;0送BL EE:MOV EXIT: MOV Y,BL ;BL中内容送Y单元 MOV AH,4CH INT 21H ;程序结束 CODE ENDS ;汇编结束 END START 【例5.5】试编一程序,求三个带符号字数据中的最大值,并将最大值存入MAX字单元中。 中存储。程序流程图如下图Z、Y、X设三

8、个带符号数分别在三个字变量 所示 收集于网络,如有侵权请联系管理员删除精品文档 STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT X DW 00ABH Y DW 5 DW 200 Z DW ? MAX DATA ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START: MOV AX,DATA MOV DS,AX ,X MOV AX Y;AX,Y X?CMP L1 JG ;MOV AX ZY?,Y CMP AX ,Z JG EXIT L2: MOV AX,Z JMP EXIT

9、 收集于网络,如有侵权请联系管理员删除精品文档 L1: CMP AX,Z ;XZ? L2 JLE EXIT: MOV MAX,AX AH,4CH MOV INT 21H CODE ENDS END START 【例5.6】设某程序有8路分支,试根据给定的N值(18),将程序的执行转移到其中的一路分支。 程序流程如图下所示。 DATA SEGMENT TAB DW P1,P2,P3,P4,P5,P6,P7,P8 N DB 5 DATA ENDS STACK SEGMENT DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,

10、CS:CODE 收集于网络,如有侵权请联系管理员删除精品文档 START: MOV AX,DATA MOV DS,AX MOV AL,N DEL AL ADD AL,AL MOV BL,AL MOV BH,0 JMP TABBX P1: JMP EXIT P2: JMP EXIT P2: JMP EXIT P3: JMP EXIT P8: EXIT: MOV AH,4CH INT 21H CODE ENDS END START 【例5.7】已知有几个元素存放在以BUF为首址的字节存贮区中,试统计其中正元素的个数。 收集于网络,如有侵权请联系管理员删除精品文档 显然,每个元素为一个8位有符号二进

11、制数,统计其中正元素的个数可用循环程序实现。其程序流程图如下图所示。 例5.8】编写程序完成求123N的累加和,直到累加和超过1000。流程图如下图SUMCN为止。统计被累加的自然数的个数送单元,累加和送 所示。 收集于网络,如有侵权请联系管理员删除精品文档 DATA SEGMENT SUM DW ? CN DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX ;初始化 ;0 送MOV AX,0 AX MOV BX,0 ;0送BX LP: INC BX ;BX加1 ADD AX,BX ;求

12、累加和 ;比较CMP AX,1000 JBE LP ; 1000转 MOV SUM,AX MOV CN,BX ;送结果 MOV AH,4CH INT 21H ;返回DOS CODE ENDS END START ;汇编结束 【例5.9】在以BUF为首址的字存储区中存放有N个有符号数,现需将它们按大到小的顺序排列在BUF存储区中,试编写其程序。 收集于网络,如有侵权请联系管理员删除精品文档 我们采用冒泡排序算法从第一个数开始依次对相邻两个数进行比较,如次序对,则不交换两数位置;如次序不对则使这两个数交换位置。可以看出,第一遍需比较(N-1)次,此时,最小的数已经放到了最后;第二遍比较只需考虑剩下的(N-1)个数,即只需比较(N-2)次;第三遍只需比较(N-3)次,整个排序过程最多需(N-1)遍。如下面的4个数即是采用冒泡排序比较的例 子。 数 10 8 16 90 32 第一遍 8 16 190 32 0 第二遍8 90 132 6 10 第三遍 32 8 916 0 10 程序流程图如图5.9所示。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1