标签:qps main ssh vfp knn gilb roo idv cm4
1. 题目:找出前100以内素数。
2. 要求:将前100以内素数找出并显示值,要求每行显示5个素数。
先列出求100以内素数的C++代码
然后根据C++代码写汇编代码,相对来说比较容易。
1 //The program is to find the primes from 1 to 100 with C++
2 //By Karllen
3 //time: 05/19/2014
4
5 #include <iostream>
6 int main(void)
7 {
8
9 int number = 2;
10 int flag = 1;
11 while (number<=100)
12 {
13 int i = 2;
14 while (i<=number)
15 {
16 if (number%i==0)
17 {
18 break;
19 }
20 else
21 {
22 ++i;
23 }
24 }
25 if (i==number)
26 {
27
28 std::cout<<number<< " ";
29 if (flag%5==0)
30 {
31 std::cout<<std::endl;
32 }
33 ++flag;
34 }
35 ++number;
36 }
37 system("pause");
38 return 0;
39 }
汇编代码如下:
1 ; Example assembly language program -- adds two numbers 2 ; Author: Karllen 3 ; Date: revised 05/2014 4 5 .386 6 .MODEL FLAT 7 8 ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD 9 10 INCLUDE io.h ; header file for input/output 11 12 cr EQU 0dh ; carriage return character 13 Lf EQU 0ah ; line feed 14 15 .STACK 4096 ; reserve 4096-byte stack 16 17 .DATA 18 ; reserve storage for data 19 mm DWORD ? 20 number DWORD ? 21 flai DWORD ? 22 flaj DWORD ? 23 promot BYTE "The programer is to find all prime from 1 to 100 ",cr,Lf,0 24 answer BYTE "All prime is " 25 BYTE cr,Lf,0 26 crlf BYTE cr,Lf,0 27 value BYTE 11 DUP(?) 28 29 .CODE ; start of main program code 30 _start: 31 output promot 32 mov mm,5 33 mov number,2 34 mov ecx,2 35 mov flaj,0 ;计数,统计素数个数 36 doWhile: 37 mov flai,2 38 mov ecx,number 39 cmp ecx,100 40 jg endWhile 41 doFindWhile: 42 cmp flai,ecx 43 je FindPrime 44 mov eax,ecx 45 cdq 46 idiv flai 47 cmp edx,0 48 je endFindWhile 49 50 inc flai 51 jmp doFindWhile 52 53 FindPrime: 54 mov eax,flaj 55 cdq 56 idiv mm 57 cmp edx,0 58 jne PrintNoCrlf 59 output crlf 60 printNoCrlf: 61 dtoa value,ecx 62 output value 63 inc flaj 64 65 endFindWhile: 66 inc number 67 jmp doWhile 68 endWhile: 69 70 INVOKE ExitProcess, 0 ; exit with return code 0 71 72 PUBLIC _start ; make entry point public 73 74 END ; end of source code
测试结果:
标签:qps main ssh vfp knn gilb roo idv cm4
原文地址:http://www.cnblogs.com/xieyulin/p/7056431.html