主题:求助:编程求2-1000内的素数,并显示输出
gelukkig
[专家分:0] 发布于 2006-06-22 21:18:00
各位高手们,请帮我做做这两个题目
1。编程求2-1000内的素数,并显示输出
2。一个16进制转换为10进制的子程序
谢谢![em12]
回复列表 (共3个回复)
沙发
gelukkig [专家分:0] 发布于 2006-06-27 22:33:00
怎么没人帮忙哦!!!!
板凳
hncuzhangjie [专家分:0] 发布于 2006-07-01 22:10:00
本人也有这个设计,希望现在给你不晚
DATA SEGMENT
ARRAY1 DW 1000 DUP(?)
RESULT DB 6 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BX,2
mov si,0
LOOP0: MOV CX,1
LOOP1: INC CX
CMP BX,CX
JE loop3
MOV AX,BX
CWD
DIV CX
CMP DX,0
JE LOOP2
JMP LOOP1
LOOP2: INC BX
CMP BX,1000
JE ENDL
JMP LOOP0
LOOP3 :
MOV ARRAY1[si],BX
inc si
inc si
JMP LOOP2
ENDL: mov CX,SI
MOV SI,0
MOV DI,0
L0: mov ax,array1[si]
mov bx,10
L1: MOV DX,0
DIV BX
MOV RESULT[DI],DL
INC DI
CMP AX,0
JNZ L1
L2: MOV DL,RESULT[DI-1]
ADD DL,30H
MOV AH,02H
INT 21H
DEC DI
JNZ L2
MOV DL,' '
MOV AH,02H
INT 21H
INC SI
INC SI
DEC CX
DEC CX
JNZ L0
MOV AH,4CH
INT 21H
CODE ENDS
END START
3 楼
Vaan [专家分:120] 发布于 2006-07-05 12:51:00
恩,以前写的。
data segment
sig db 1000 dup(0)
sig_ind dw 2
halt_ind dw 0
data ends
code segment
main proc far
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov si,2
call printit
mov ax,2
mov si,2
loop1:
add si,ax
cmp si,4999
ja next
mov sig[si],1
jmp loop1
next:
mov si,ax
loop2:
inc si
cmp si,4999
ja endcheck
cmp sig[si],0
jne loop2
push si
call printit
pop si
mov ax,si
mov sig_ind,ax
jmp loop1
endcheck:
mov ax,4c00h
int 21h
main endp
printit proc
push si
mov ax,halt_ind
cmp ax,160
jb print
enter:
mov ah,7
int 21h
cmp al,0dh
jne enter
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
mov ax,0
print:
inc ax
mov halt_ind,ax
pop ax
xor dx,dx
mov bx,1000
div bx
push dx
or al,30h
mov dl,al
mov ah,2
int 21h
pop dx
mov ax,dx
mov bl,100
div bl
push ax
or al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
mov ah,0
mov bl,10
div bl
push ax
or al,30h
mov dl,al
mov ah,2
int 21h
pop ax
mov al,ah
or al,30h
mov dl,al
mov ah,2
int 21h
mov dl,' '
mov ah,2
int 21h
ret
printit endp
code ends
end start
我来回复