汇编语言程序设计A卷答案.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言程序设计考试试卷A参考答案 一、选择题(单选,每小题2分,共10分) 1~5:CBDCA 二、填空题(每空 2分,共10 分) 【1】 1M 【2】0F8H 【3】LEA BX,A 【4】程序控制方式 【5】display a character c: E 三、程序分析题(每小题15分 共30分) 1、 (2分)[1.1] (ax)= 8(或0008h) (2分) [1.2] (bx)=0080h(或128) (3分)[1.3] (cx)= 0096h(或者150) (2分)[1.4] (dx)= 4142h (3分) [1.5] (si)=6300h (3分) [1.6] (di)=6400h 2、每个3分,共15分 [2.1] jge next1 [2.2]mov y,-1 [2.3]jg next2 [2.4]mov y,0 [2.5]mov y,1 四、程序解释题(每小题15分,共15分) 1、每个1分,共15分 [1.1]定义数据段。 [1.2]调用子程序decibin,实现十进制数的输入。 [1.3]把从键盘得到的十进制数,存入变量array中。 [1.4]对cx清零,准备接收十进制数。 [1.5]调用DOS功能实现从键盘接收一个字符,其ASCII码在AL中 [1.6]若AL30H,则输入的是非数字字符。 [1.7]若AL39H,则输入的是非数字字符。 [1.8]ah清零,使ax存放输入的数字值。 [1.9]ax与cx数据交换,使ax存放十进制数的高位,cx存放十进制数的个位。 [1.10]ax*bx,即ax*10,结果存放于dx:ax中。 [1.11] ax+cx→cx,完成一位十进制数的输入,即cx*10+al→cx。 [1.12]cx→ax,子程序decibin的出口参数是ax,因此把存放十进制数的cx值传递给ax。 [1.13]子程序的返回主程序语句 [1.14]子程序结束标志 [1.15]汇编语言源程序结束。 五、编程题(1、2每小题10分,3小题15分,共35分) 1、试编制一个程序,求出首地址为array的200个字数组中的最小奇数,并把它存入ax中。 程序如下: .model small .data array dw 200 dup(?) .code .startup xor ax,ax ;ax寄存器用于存放最小奇数,若没有奇数,则ax的值为0。 mov cx,200 lea bx,array next3: test word ptr[bx],01h jz next1 ;数组中当前的数是偶数 cmp ax,word ptr[bx] ;数组中当前的数是奇数 jg next2 ;当前奇数比ax寄存器中的奇数更小 jmp next1 next2: mov ax,word ptr[bx] next1: add bx,2 loop next3 .exit end 2、 比较两个字符串str1和str2所含的字符是否相同,若相同则显示”match!”,否则,显示”no match”。要求用cmp和loop实现,部分指令如下,n1为字符串str1的字节数,n2为字符串str2的字节数。 .model small .stack .data str1 db ‘Assembly Language’ n1=$-str1 str2 db ‘Assembly Language’ n2==$-str2 mess1 db “match!”,13,10,’$’ mess2 db “no match.”,13,10,’$’ .code .startup mov cx,n1 cmp cx,n2 jnz no ;字符个数不等,则字符串不匹配。 xor bx,bx ;用bx记录字符串下标。 next: mov al,str1[bx] cmp al,str2[bx] jnz no ;当前比较的两个字符不等,则字符串不匹配。 inc bx loop next lea dx,mess1 ;字符串匹配,把字符串“match!”的偏移地址送入dx寄存器,准备显示。 jmp disp no: lea dx,mess2

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档