第1题只能输入数字的程序。.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1题只能输入数字的程序。.doc

第1题:只能输入数字的程序。 ;程序如下: data segment ??????? msg1 db Input Number:0~9,0ah,0dh,$ ??????? msg2 db Error!,0ah,0dh,$ data ends code segment ??????? assume cs:code start: ??????? mov ax,data ??????? mov ds,ax ??????? ??????? lea dx,msg1 ??????? mov ah,9h ??????? int 21h??????????????? ;显示第一个字符串 ??????? lp:???? mov ah,01h ??????? int 21h??????????????? ;接收字符??????? ??????? cmp al,0 ??????? jb again??????? ;ASCII码小于0则显示跳到标号again处 ??????? cmp al,9 ??????? ja again??????? ;ASCII码大于9则显示跳到标号again处 ??????? jmp short quit? ;在0~9之间则跳出循环 again:? lea dx,msg2 ??????? mov ah,9h ??????? int 21h???????????? ;显示第二个字符串Error! ??????? jmp short lp??????? ;跳到标号lp处 quit:?? mov ax,4c00h ??????? int 21h code ends end start ============================================ 第2题:输入一个字符串(最大长度为10),统计出现字母A的个数。 ;程序如下: data segment ??????? str db 10,13,input a? string,10,13,$ ??????? strb db 10,13,the number of A is ,10,13,$ ??????? buf db 10 ??????????? db ? ??????????? db 10 dup(?) data ends code segment ? assume cs:code,ds:data?? ?? start:mov ax,data ???????? mov ds,ax ? ???????? lea dx,str ???????? mov ah,9 ???????? int 21h ???????? ? lea dx,buf ???????? mov ah,0ah ???????? int 21h ???????? ? xor cx,cx ???????? xor si,si?;存放A的个数[不能使用al进行] ???????? mov cl,buf+1?;改为cl,否则操作数类型不一致 ???????? lea bx,buf+2 ???????? ;mov dl,A ???? lp: cmp byte ptr [bx],A ???????? jne next ? inc si ?next: ?inc bx ??????? loop lp ?lea dx,strb ??????? mov ah,9 ??????? int 21h ??????? ?xor dx,dx ?mov dx,si ?add dl,30h?;使dl成为可显示的阿拉伯数字 ?mov ah,2 ??????? int 21h ??????? ?mov ah,4ch ??????? int 21h code ends ??? end start ========================================== 第3题:计算12+22+32+42+……,计算前N项的和,使和大于1000。编写程序求解N。 ;程序如下: assume cs:code,ds:data data segment ??????? count db 0 ;计数器 ??????? sum dw 0?? ;sum中存放和 data ends code segment main: ??????? mov ax,data ??????? mov ds,ax ??????? and ax,0 ??????? mov al,12??? ;将al的值初始为12 ??????? lea bx,sum s:????? add byte ptr [bx],al ??????? adc byte ptr [bx+1],ah ??????????? ;以上两步做累加和 ??????? a

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档