武汉理工微机原理数字累加求和课设报告(4)

2019-03-28 09:05

武汉理工大学《微机原理》课程设计说明书

lea dx,input mov ah,09h int 21h

mov bl,0ffh

mov ibuf+5,bl ;将ibuf里第三位数置为0ffh

lea dx,ibuf mov ah,0ah int 21h mov si,dx mov bl,[si+5]

cmp bl,0ffh ;存在

jne error ;

mov bl,[si+2] ;cmp bl,30h ;jna error ;cmp bl,3ah ;jnb error

mov bl,[si+3] ;cmp bl,2fh ;jna error cmp bl,3ah jnb error jmp correct error:

lea dx,ERROR_MESS ;

与第三位进行比较判断是否有三位判定是否出错 判定输入是否为小于10的数 十位跟零比较

小于等于0就跳到错误 大于9就会错误 个位跟零比较 小于0就错误 出错提示

15武汉理工大学《微机原理》课程设计说明书

mov ah,09h int 21h jmp start exit: mov ah,4ch int 21h

correct: mov cl,ibuf+1 xor ch,ch

mov si,offset ibuf+2

mov ax,0 ;循环运算前的初始化

again: ; (((0*10 * a0)*10 + a1)*10 + a2) mov dx,10

mul dx ;在做乘法的过程中不用考虑dx,因为输入的数为0~99,所以dx总是为0

mov bl,byte ptr [si] ;取出该字符的ASCLL码 sub bl,30h ;将其减去30H得到数值 add al,bl

adc ah,0 ;在做加法是要考虑是否有进位 inc si loop again

mov cx,ax mov ax,0 mov bx,1

loop2: add ax,bx inc bx

loop loop2;这个循环就实现了sum = 1 + 2 + ... + n的操作了

16

武汉理工大学《微机原理》课程设计说明书

mov bx,offset obuf+7

mov byte ptr [bx],'$';将最后一个字节赋值为'$'以便将数字字符串输出出来。

mov cx,10 jmp loop1 loop1 : mov dx,0

div cx ;(ax <- ax/10) ax 中存放的是商,汇编中16进制就可以当做10进制来运算

add dl,30h ; dl中存放的是余数 dec bx ;将指针前移一个字节 mov [bx],dl ;将余数放在字符串的末尾 or ax,ax ;当ax为0时结束

jnz loop1 ;当ZF==0时跳转,jump not zero dec bx

mov byte ptr [bx],0dh dec bx

mov byte ptr [bx],0ah ;在字符串的前面加上回车换行。

lea dx,output ;输出提示 mov ah,09h int 21h mov dx,bx mov ah,09h

int 21h ;显示字符串bx j start

17

武汉理工大学《微机原理》课程设计说明书

code ends end start

18

武汉理工大学《微机原理》课程设计说明书

本科生课程设计成绩评定表

姓 名 专业、班级 课程设计题目: 课程设计答辩或质疑记录: 性 别 成绩评定依据: 最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字:

年 月 日

19


武汉理工微机原理数字累加求和课设报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“中国知网”大学生论文管理系统使用手册(教师)-2014版 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: