回覆列表
  • 1 # 老王眼中的娛樂

    從網上找的,我已經修改正確,生成的exe只能在dos下執行。

    但不能重複輸入

    ;給出一個百分制成績,要求輸出成績等級A、B、C、D、E。90 分以上為A,80-89

    ;分為B,70-79 分為C,60-69分為D,60 分一下為E。

    ;要求:提示輸入一分數score;

    ;鍵盤輸入,並換行顯示結果,

    data segment

    S1 DB 0DH,0AH,"Enter score: $"

    S2 DB 0DH,0AH,"The grade is: $"

    D1 DB 0 ;輸入的成績

    data ends

    code segment

    assume cs:code,ds:data

    start:

    main proc far

    PUSH DS

    XOR AX,AX

    PUSH AX

    MOV AX,DATA

    MOV DS,AX

    MOV AH,9 ;提示輸入成績

    MOV DX,OFFSET S1

    INT 21H

    RE_I: MOV AH,07H ;輸入數字(用不回顯方式)

    INT 21H

    CMP AL,0DH

    JNE N1

    mov ah,9

    mov dx,offset S2

    int 21h

    MOV AL,D1

    CMP AL,90

    JB X1

    MOV DL,"A"

    JMP DISP

    X1: CMP AL,80

    JB X2

    MOV DL,"B"

    JMP DISP

    X2: CMP AL,70

    JB X3

    MOV DL,"C"

    JMP DISP

    X3: CMP AL,60

    JB X4

    MOV DL,"D"

    JMP DISP

    X4: MOV DL,"E"

    DISP: MOV AH,2

    INT 21H

    JMP EXIT

    N1: CMP AL,"0" ;過濾掉數字外的字元

    JB RE_I

    CMP AL,"9"

    JA RE_I

    MOV DL,AL

    PUSH AX

    MOV AH,2 ;顯示輸入的數字

    INT 21H

    MOV AL,D1

    MOV AH,0

    MOV BL,10

    MUL BL

    POP BX

    SUB BL,30H

    ADD AL,BL

    MOV D1,al

    Jmp RE_I

    EXIT: RET

    main endp

    code ends

    end start

  • 中秋節和大豐收的關聯?
  • 當加什麼偏旁組詞?