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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机作业文档格式.docx

1、2.3 程序框图 92.4 程序代码 92.5程序结果为 113、第13.3题 113.1题目分析 123.2寄存器及主存的应用说明 123.3 程序框图 143.4 程序代码 143.5 程序结果 171、第13.1题请将内存中SOURCE处的10个字型有符号数分成正数数组PLUS和负数数组MINUS,并统计这两个数组的数据个数,结果分别存放到字节变量PNUM(存正数个数)和MNUM(存负数个数)中。1.1题目分析本题应该先给三变量数组赋予地址,设循环变量CX=10,然后依次判断SOURCE处的字型有符号数的正负,若为正则存放到PNUM,字节变量PNUM+1 ,DI+2,SI+2;若为负存入

2、MINUS,字节变量MNUM+1,DI+2,SI+2,循环10次。本题利用LODSW ,STOSW,XCHG 等语句操作,可以使结构精简,程序代码少。预期结果:SOURCE = 1E00H, 9100H, 7400H, 9700H, 4200H, 3000H, 8100H, 3F00H, 1800H, 2500HPLUS = 1E00H, 7400H, 4200H, 3000H, 3F00H, 1800H, 2500H, 0000H, 0000H, 0000HMINUS = 9100H, 9700H, 8100H, 0000H, 0000H, 0000H, 0000H, 0000H, 0000

3、H, 0000HPNUM = 07HMNUM = 03H1.2寄存器及主存的应用说明依次定义了数据的存储模式,堆栈段,数据段。数据段中定义要求的数组,计算机为其分配存储空间。本题中用到了通用寄存器中的数据寄存器BX、AX;变址寄存器SI、DI;段寄存器DS、ES。BX、SI、DI分别存储MINUS、SOURCE、 PLUS数组的偏移地址。数据段寄存器DS与SI联用寻址数据段中的源操作数,附加段寄存器ES与DI联用寻址附加段中的目的操作数,同时SI和DI能够自动增量或减量。1.3 程序框图1.4 程序代码.MODEL SMALL.STACK.DATASOURCE DW 1E00H, 9100H,

4、 7400H, 9700H, 4200H, 3000H, 8100H, 3F00H, 1800H, 2500HCOUNT EQU ($-SOURCE)/2PLUS DW COUNT DUP (?)MINUS DW COUNT DUP (?PNUM DB 0MNUM DB 0.CODE.STARTUPMOV SI,OFFSET SOURCE ;给SI赋予SOURCE的偏移地址MOV DI,OFFSET PLUS ;给DI赋予PLUS的偏移地址MOV BX,OFFSET MINUS ;给BX赋予MINUS的偏移地址MOV AX,DS ;所有数据都在数据段中,故设置ES=DSMOV ES,AXMOV

5、 CX,COUNT ;给循环变量CX赋值CLD AGAIN: LODSW ;字串读取:AL DS:SI ;然后:SI SI+2 CMP AX,0 ;检测符号位,判断是正是负 JL FUSHU ;小于0,是负数,转向FUSHU JZ NEXT ;等于0,不处理,跳转到NEXT STOSW ;大于0,是正数,存入PLUS;DI DI+2 INC PNUM ;字节变量PNUM+1 JMP NEXT :跳转到NEXTFUSHU: XCHG BX,DI把负数存入MINUS ; INC MNUM ;字节变量MNUM+1NEXT: LOOP AGAIN.EXITEND1.5程序结果为?2、第13.2题对一个

6、由可打印的ASC组成的字符串(其ASC码值在20H-7FH之间,最后以00H结束),可按照如下办法对其进行压缩:从字符串首开始向后扫描,若某字符串单独出现则该字符不变;若某字符连续出现N次,则该字符用ESC(1BH),N,原字符共3个字节来代替,设内存中SOURC处有一个按上述方法进行压缩的字符串,以00H结束。现要求对其进行解压缩,假定解压后的字符串长度不超过100.处理结果存放到RESULT处。2.1题目分析本题应先判断给出的字符里是否有1BH,若有则得N值,进而得到连续字符,若无直接送到目标地址,继续搜寻,直到扫描到00H为止,并将最终结果存储在规定的内存单元中。本题的注意事项是扫描到1

7、BH之后,如何获得连续字符。SOURCE = 41H,1BH,06H,43H,61H,00HRESULT = 41H,43H,43H,43H,43H,43H,43H,61H,00H2.2寄存器及主存的应用说明变址寄存器SI。BX、SI分别存储SOURCE、 RESULT数组的偏移地址。AX寄存器常用于算术运算、逻辑运算以及外设传送信息等。2.3 程序框图2.4 程序代码SOURCE DB 41H,1BH,06H,43H,61H,00HRESULT DB 100 DUP (?MOV BX,OFFSET SOURCE ;给BX赋予SOURCE的偏移地址MOV SI,OFFSET RESULT ;给

8、SI赋予RESULT的偏移地址MOV AL,BX :将SOURCE的值传递给ALCMP AL,1BH ;检测字符1BHJE WEI ;若有字符1BH,则跳转到WEI MOV SI,AL ;若无字符1BH,则将AL内容送到RESULTCMP AL,0JE OVER ;若有字符00H,则结束循环INC BX ;BX+1INC SI ;SI+1JMP AGAINWEI:MOV CH,0MOV CL,BX ;取CX=NINC BXFENG:MOV AL,BX 将BX里的值赋给RESULTLOOP FENG ;循环N次JMP AGAIN ;跳转到AGAINOVER2.5程序结果为SOURCE = 41H

9、,1BH,06H,43H,61 H,00H3、第13.3题内存中NUMA和NUMB处各存放着10个字节型有符号数,分别为Ak和Bk(k=0,1,9)。从键盘输入一个字符,若输入的字符为+,则计算Ck=Ak+Bk,结果保存到字型变量NUMC处,程序结束;若输入的字符为*,则计算Ck=Ak*Bk,结果保存到字型变量NUMC处,程序结束;若输入的是其他字符,则在下一行显示ERROR,程序结束。3.1题目分析本题应先判断输入的字符是否为*或+,并进行对应的操作,若为* 或 /+,为两个字型有符号数的绝对值(正数取本身,负数则取反加1变为绝对值)相乘或相加,即用到乘法指令mul r16/m16或add

10、dest,src,并将结果存储在规定的内存单元中。本题的注意事项在于其乘数为字型有符号数,题目要求取反,乘积为双字,需要控制其结果存储的位置,以达到规定要求。NUMC = 0080H, 0090H, 0078H, 004DH, 004CH, 00A2H, 00DEH, 0087H, 002FH, 00D0H ;+NUMC = 0700H, 086FH, 072CH, 044EH, 0000H, 16FDH, 2FA8H, 0C4EH, 0138H, 295FH ;*3.2寄存器及主存的应用说明本题中用到了通用寄存器中的数据寄存器BX、AX、CX;变址寄存器SI、DI。BX、SI、DI分别存储N

11、UMA、NUMB、 NUMC数组的偏移地址。变址寄存器SI和DI,常用于存储器变址寻址方式时提供地址。CX为计数寄存器,常用于计数控制循环程序中。3.3 程序框图3.4 程序代码NUMA DB 10H, 11H, 12H, 13H, 00H, 95H, 86H, 97H, 08H, 89HCOUNT EQU $-NUMANUMB DB 90H, 81H, 66H, 3AH, 4CH, 37H, 64H, 1EH, 27H, 59HNUMC DW COUNT DUP (?ERROR DB 0DH, 0AH, ERROR!$MOV SI,OFFSET NUMA ;给SI赋予NUMA的偏移地址MOV

12、 DI,OFFSET NUMB ;给DI赋予NUMB的偏移地址MOV BX,OFFSET NUMC ;给BX赋予NUMC的偏移地址循环次数CX=10 MOV AH,01H INT 21H ;输入一个字符CMP AL,+ ;比较AL与+JZ WEI ;相等,跳转到WEICMP AL,* ;比较AL与*JZ FENG ;相等,跳转到FENGMOV AH,09HMOV DX ,OFFSET ERROR ;显示ERRORJMP DONE ;跳转到DONECMP BYTE PTR SI,0 ;比较SI中字节型数据与0的大小JL F1 ;小于0跳转到F1CMP BYTE PTR DI,0 ;比较DI中字节

13、型数据与0的大小JL F2 ;小于0跳转到F2MOV AL,SI ;将SI中的偏移地址移动到AL中ADD AL,DI ;将DI中的偏移地址与AL中的偏 移地址相加并移动到AL中去MOV AH,0 ;AH置0MOV BX,AX ;将AX移动到BX中去并存为BX 的偏移地址SI加1INC DI ;DI加1ADD BX,2 ;将2与BX相加并移动到BX中去LOOP WEI ;循环WEIF1:NEG BYTE PTR SI ;将SI偏移地址中的字节型数据求反JMP WEI ;跳转到WEIF2:NEG BYTE PTR DI ;将DI偏移地址中的字节型数据求反JL F3 ;小于0跳转到F3JL F4 ;小于0跳转到F4将SI中的偏移地址转移到AL中去MUL BYTE PTR DI ;无符号数字节型数据相乘将AX移动到BX中去并存为BX的偏移地址将2加到BX中去循环FENGF3:JMP FENG ;跳转到FENGF4:DONE:3.5 程序结果程序结果为

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

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