用組合語言程式求100 200間的全部素數

時間 2022-10-29 00:06:13

1樓:

;求100-200以內的素數

data segment

d1 dw 200 dup(0) ;定義存放素數的位置data ends

code segment

main proc far

assume cs:code,ds:datastart:

push ds

xor ax,ax

push ax

mov ax,data

mov ds,ax

mov dx,99

mov si,offset d1

next:

inc dx

;add si,2

cmp dx,200 ;200以內的數

jae exit

mov ax,dx

shr ax,1 ;/2

dec ax ;是從2開始除,所以迴圈數要減1mov cx,ax ;迴圈值

mov bl,1

loop1:

inc bl ;依次除以2,3,....

mov ax,dx

div bl

cmp ah,0

je next ;餘數為0,非素數

loop loop1

mov [si],dx ;儲存素數

add si,2

jmp next

exit:

retmain endp

code ends

end start

2樓:匿名使用者

//c++

#include

#include

int main()

}std::cout<<'\n';

return 0;}

3樓:計算機技術價值

#include

int main()

}if(flag)

printf("%d ",i);

}return 0;}

用組合語言,編寫程式輸出100-200之間所有的素數,每行輸出5個數,**等,急求!!!!!!!!!!

4樓:做而論道

我也做出來了。

可見插圖:

只要把設計要求,寫入下面的資料段中,即可。

;******************************==dseg segment

msg1    db  'su_shu: ', 13, 10, 24h

n_1     dw  100

n_2     dw  1000 ;300n_3     db  10;8    ;5n_div   dw  ?

n_dis   db  0

dseg ends

;******************************==程式,就會按照要求,輸出素數。

5樓:匿名使用者

data segment

n1  db 20 dup(0)

n   db 0

data ends

code segment

main proc far

assume cs:code,ds:data

start:

push ds

xor ax,ax

push ax

mov ax,data

mov ds,ax

;;mov ax,20000

mov ax,100 ;起始數

again:

cmp ax,200 ;結束數

;cmp ax,300

ja exit

mov bx,2

x1:cmp bx,ax

jae exit1 ;yes,disp it

push ax

push bx

mov dx,0

div bx

cmp dx,0 ;yu=0

je n11  ;no

pop bx

pop ax

cmp bx,2 ;去掉偶數

ja add2

dec bx

add2:

inc bx

inc bx

jmp x1

n11:

pop bx

pop ax

jmp n22

exit1:  ;yes,disp it

mov si,offset n1

mov dx,0

call div10

push ax

push bx

mov dx,offset n1

mov ah,9

int 21h

inc n

mov al,n

cmp al,5 ;每行顯示5個數

jne  disp_k

mov al,0

mov n,al

jmp disp_cr

disp_k:

mov ah,2

mov dl,' '

int 21h

jmp next9

disp_cr:

mov ah,2

mov dl,0dh

int 21h

mov dl,0ah

int 21h

next9:

pop bx

pop ax

n22:

inc ax

jmp again

exit:

ret;int 20h

main endp

;********************=

;********************=

;將32位16進製制數(dx:ax)轉換為10進製數子程式

;入口: dx:ax存32位16進製制數, si為存放轉換後10進製數的首位址

;出口: 在si中存放轉換後10進製數的ascii碼

div10 proc near

push ax

push bx  ;保護現場

push cx

push di

mov cx,0 ;每位10進製數進棧計數器

mov bx,10d ;除數10

re_div:

push ax  ;低16位進棧

mov ax,dx ;先除高16位

mov dx,0 ;高位置0

div bx  ;商在ax中,是下一輪除的高位;餘數在dx中,它和已進棧的ax(低16位)組成新的32位數

mov di,ax ;將下一輪除的高位儲存在di

pop ax  ;取回先前進棧的低16位

div bx  ;除后,商ax是下一輪的低16位,即(di:ax)組成新的32位被除數;

;餘數dx是一位已轉換的10進製數

add dx,30h ;將其轉換成ascii碼

push dx  ;將其進棧

inc cx  ;進棧計數器加1

mov dx,di ;將高位商返回dx

cmp ax,0 ;判斷商是否為0, dx:ax均需為0,實際上就是(di:ax)這個新組成的32位被除數是否為0

jz down1 ;商低位為0

jmp re_div ;商低位不為0,繼續除10取餘

down1:

cmp dx,0

jz down  ;商低位(ax)為0,高位(dx)也為0

jmp re_div ;否則繼續除10取餘

down:  ;當dx和ax均為0時(商為0),轉結束除

pop [si] ;以cx的值(進棧計數器)依次出棧

inc si  ;由於出棧的數僅低8位有效(高位為0),所以si每次只增1,

;使新出棧的低8位有效值覆蓋前一次出棧的高位0

loop down

mov al,'$' ;在字串尾部加結束標誌

mov [si],al

pop di  ;恢復現場

pop cx

pop bx

pop ax

retdiv10 endp

;********************====

;********************====

code ends

end start

6樓:匿名使用者

我這有原創「篩法」找素數並輸出的匯程式設計序的,私信30rmb吧,或當我沒說

程式設計求100~200之間全部素數的和

7樓:紫薇參星

按照你的要求改完的,用陣列編譯的求100~200之間全部素數和的c語言程式如下(改動的地方比較多,尤其是判斷素數和給陣列賦值處,你仔細看看吧)

#include

int main()

{int num[100];

int i,j,t=0,sum=0;

for(i=101;i<200;i++)

{for(j=2;j

編寫c語言程式,求100~200之間所有素數。

8樓:匿名使用者

素數就是只能被1和本身整除的數,先定義乙個函式用於判斷乙個數是否是素數,在從100到200依次迴圈判斷,如果是素數則輸出。

#include

int fun(int n){//判斷n是否是素數int i;

for(i=2;i

9樓:彌鷗逮成蔭

#include

void

main()

void

outputsushu(int

k)if(w==0)

printf("%d\t是素數\n",k);

else

printf("%d\t不是素數\n",k);}

10樓:王澤無敵真的

# include

# include

int main()

if(k>sqrt(i*1.0))

if(n%10==0)

printf("\n");

}return 0;}

11樓:

#include

#include

int isprime(int n)

void main()

printf("\n");

for(i=2;i<1000;i++)

12樓:匿名使用者

#include

#include

#include

int primer_number(int lower, int upper)

if (flag == 0)

count++;

}return count;

}int main(void)

程式設計題求100-200之間的全部素數怎麼做呀?

13樓:匿名使用者

<?php

$a=array();

for($i=100;$i<200;$i++)}foreach($a as $k=>$v)echo $v." ";

}echo "

100-200之間的以內素數的個數是". count($a);

?>

14樓:**愛人醉紅顏

#include

#include

void main()}

求100-200間的全部素數 這個用c語言怎麼程式設計

15樓:匿名使用者

#include

int isprime(int a)

int main(void)

printf("\n");}

16樓:唯意朵朵

#include

main()

if(n%n==0)printf(「\n」);

}printf(「\n」);}

利用組合語言編寫程式,利用組合語言編寫程式

採納答案,用錯了語言。題目說 片內ram.這應該是 51 微控制器的。下面的程式,是求a b的平方和,存入c單元。mov a,30h call fing fang mov 32h,a mov a,31h call fing fang add a,32h mov 32h,a sjmp fing fan...

用組合語言編寫一完整程式,用組合語言編寫乙個程式。

江西理工大學 今天下午剛好咱們上機課,做了這個題,給你完整答案如下 datas segment 此處輸入資料段 buff dw 5,25,55,115,138,159,196,163,20,255 dat dw 0 show db 4 dup 0 datas ends stacks segment ...

用組合語言編寫小小程式,用組合語言編寫乙個小小程式

這個還不簡單 includevoid main 如何用組合語言寫個小程式 hello word!堆疊段 stack segment stack db 100 stack ends 資料段 data segment szhello db hello,word 0dh,0ah,data ends 段 c...

求用組合語言解決學生的平均成績,求用組合語言 解決10個學生的平均成績

mov bx,offset score mov cx,30 mov dx,0 clcagain add dl,bx adc dh,0 inc bx mov ax,dx mov dl,30 div dl 顯示你自己顯示吧 loop again c語言編寫函式,求10個學生的平均成績,使用陣列 1 首先...

使用組合語言寫課程設計,用組合語言如何編寫計算n!的課程設計

彙編,好久沒用的語言了。難度不小啊 用組合語言如何編寫計算n!的課程設計 本程式通過編譯,執行正確 code segment assume cs code,ds coden equ 8 start mov cx,n cmp cx,1 n 1?ja next 是,階乘 mov ax,1 n 1,n 1...