當前位置:編程學習大全網 - 編程語言 - 匯編高手請進!!!

匯編高手請進!!!

A+B=C 形式的

INPUT MACRO NUM

LOCAL NEXT1

LOCAL NEXT2

LOCAL END0

NEXT1:

LEA DX,STRING1

MOV AH,9

INT 21H

MOV AH,1

INT 21H

CMP AL,30H

JL NEXT2

CMP AL,39H

JG NEXT2

JMP END0

NEXT2:

LEA DX,STRING2

MOV AH,9

INT 21H

JMP NEXT1

END0:

AND AL,0FH

MOV NUM,AL

ENDM

DATA SEGMENT

STRING1 DB 0AH,0DH,'Please input a number(0 to 9):$'

STRING2 DB 0AH,0DH,'Bad number!$'

STRING3 DB 0AH,0DH

DB 10 DUP(0)

NUM1 DB ?

NUM2 DB ?

DATA ENDS

STACK1 SEGMENT PARA STACK

BUF Db 60 DUP(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX

INPUT NUM1

INPUT NUM2

CLD

LEA DI,[STRING3+2]

MOV AL,NUM1

OR AL,30H

STOSB

MOV AL,2BH

STOSB

MOV AL,NUM2

OR AL,30H

STOSB

MOV AL,3DH

STOSB

XOR AX,AX

MOV AL,NUM1

ADD AL,NUM2

AAA

PUSH AX

MOV AL,AH

TEST AL,AL

JZ NEXT

OR AL,30H

STOSB

NEXT:

POP AX

OR AL,30H

STOSB

MOV AL,24H

STOSB

LEA DX,STRING3

MOV AH,9

INT 21H

MOV AX,4C00H

INT 21H

CODE ENDS

END START

給妳壹個算法: 可以求壹個數的近似開方平值!

1+3+5+7......2(n-1)=n的平方

所以只要用n的平方的值連續減去奇數1.3.5......2(n-1) 當減到第n+1次其差為負,則夠減的次數n就是要開方的近似值! 我可能說的不是太明白,給妳壹段開方子程序給妳參考!

mov bx,0

mov dx,1

mov ax,y ;y是要開方的數

again: sub ax,dx

jc exit ;如果不夠減則結束

inc dx

inc dx

inc bx ;計數器bx

jmp again

最後求出的那個bx的值就是所要求的平方根

  • 上一篇:網頁遊戲開發需要學習什麽知識
  • 下一篇:網站制作屬於什麽行業?
  • copyright 2024編程學習大全網