回 帖 发 新 帖 刷新版面

主题:求助:编程求2-1000内的素数,并显示输出

各位高手们,请帮我做做这两个题目
1。编程求2-1000内的素数,并显示输出

2。一个16进制转换为10进制的子程序
谢谢![em12]

回复列表 (共3个回复)

沙发

怎么没人帮忙哦!!!!

板凳


本人也有这个设计,希望现在给你不晚
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 楼

恩,以前写的。

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

我来回复

您尚未登录,请登录后再回复。点此登录或注册