标签:
1 ;计算1+2+3+...+100的和 2 DATA SEGMENT ;数据段开始 3 SUM DW ? 4 DATA ENDS 5 6 CODE SEGMENT ;代码段开始 7 ASSUME CS:CODE,DS:DATA 8 START: MOV AX,DATA 9 MOV DS,AX 10 XOR AX,AX 11 MOV CX,100 12 NEXT: ADD,AX,CX 13 LOOP NEXT 14 MOV SUM,AX 15 MOV AH,4CH ;4C号功能调用:终止当前程序并返回调用程序 16 INT 21H 17 CODE ENDS ;代码段结束 18 END ;汇编程序结束
程序要求:
编写一个汇编程序,判断变量NUM中的无符号数是否为素数,如果是素数则向屏幕输出字符P,如果是合数,向屏幕输出C。
其中NUM在数据段中给定。
程序流程:
代码实现:
1 ;编写一个汇编程序,判断变量NUM中的无符号数是否为素数, 2 ;如果是素数则向屏幕输出字符P,如果是合数,向屏幕输出C。 3 ;其中NUM在DATA数据段中给定了 4 DATA SEGMENT ;数据段 5 NUM DW 13 6 DATA ENDS 7 CODE SEGMENT ;代码段 8 ASSUME CS:CODE,DS:DATA 9 START: MOV AX,DATA 10 MOV DS,AX ;将数据段DATA的段基址送DS 11 MOV SI,1 ;SI 16位源变址指针寄存器 12 13 BACK: INC SI 14 XOR AX,AX 15 XOR DX,DX 16 MOV AX,NUM 17 CMP AX,SI ;比较被除数(NUM)和除数(SI)是否相等 18 JZ PRINT_P ;JZ 等于则跳转 19 DIV SI ;用DX和AX组成的32位数除以16位的SI 20 CMP DX,0 ;余数在DX里边,判断余数是否为0 21 JNZ BACK ;JNZ 不等于则跳转 22 23 PRINT_C:XOR DX,DX 24 MOV DL,‘C‘ 25 MOV AH,2 26 INT 21H 27 JMP EXIT ;JMP 无条件跳转指令 28 29 PRINT_P:XOR DX,DX 30 MOV DL,‘P‘ 31 MOV AH,2 32 INT 21H 33 34 EXIT: MOV AH,4CH 35 INT 21H 36 CODE ENDS 37 END START
标签:
原文地址:http://www.cnblogs.com/ruo-yu/p/4445268.html