中南大学
汇编实验报告
学 院: 信息科学与工程学院 班 级: 计科工试1501班 学 号: 0902150323 姓 名: 张雨欣 指导老师:雷向东 完成时间: 2017.06.09
目 录
实验一、判断素数…………………3
实验二、判断单词个数……………9
实验三、数组元素排序……………13
心得体会……………………………21
实验一、判断素数
一、 实验内容
根据从键盘输入的数字判断其是否是素数,并在屏幕上打出判断结果。
二、 算法分析
调用子程序判断素数
思路:只能被1和它本身整除的数叫做素数,假设输入数X(十进制)
1.先将我们输入的字符转换为10进制对应的数存入BX 2.判断是否小于2:如果这个数是2或1,则一定是素数 3.从2开始除到X-1,判断每一次的余数是否为0 4.若有一次的余数为0,则不是素数 5.若余数都不为0,循环次数为X-2,则是素数
三、源代码
data segment
va1db 'The data is a prime number!$' va2db '-1$' data ends
code segment assumecs:code,ds:data start:
movax,data movds,ax
call decibin ;段内调用子程序 callcrlf
call judge callcrlf mov ah,4ch int 21h
decibin proc near ;子程序从键盘接收十进制 mov bx,0 newchar: mov ah,1 int 21h
sub al,30h ;转为十进制 jl exit ;小于0退出 cmp al,9
jg exit ;大于9退出 cbw
xchgax,bx ;将ax和bx中的内容互换 mov cx,10 mul cx xchgax,bx addbx,ax jmpnewchar exit: ret decibinendp
judge proc near movcx,bx sub cx,2 cmp bx,2 jle print1 mov dl,1 jud: movax,bx inc dl div dl cmp ah,0 jz print2
;判断程序