回 帖 发 新 帖 刷新版面

主题:[讨论]大家帮我一下,谢谢了先

题目这样,键盘上输入一个数(0-9)用查表法求其立方值
我做了一部分,不知道对不对,大家帮我看看阿


SSEG SEGMENT PARA STACK 'stack'
    dw 100h dup(0) 
SSEG ENDS
DSEG SEGMENT
    table dw  0, 1, 8, 27, 64, 125, 216, 343, 512, 729
    result db ?
DSEG ENDS
CSEG SEGMENT
    assume  cs:CSEG, ds:DSEG,ss:SSEG
MAIN PROC 
    mov ax,dseg
    mov ds,ax
    mov bx,offset table
    mov ah,01h
    int 21h
    sub al,30h
    xlat
    mov result,al
    mov ax, 4c00h
    int 21h
       MAIN ENDP
CSEG ENDS

END MAIN
这个结果怎么察看啊?我想让结果显示在屏幕上怎么做?

回复列表 (共2个回复)

沙发

你这样做,好像不对,因为343, 512, 729 都大于256了

换码用的是 al寄存器,只是一个8为,最大不能超过256

板凳

终于搞定了这个了
DATAS SEGMENT
      TABLE DB "001008027064125216343512729"
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AH,01H
    INT 21H
    XOR AH,AH
    DEC AL
    AND AL,0FH
    MOV BX,AX
    ADD BX,BX
    ADD BX,AX
    MOV AH,02H
    MOV DL,0DH
    INT 21H
    MOV DL,0AH
    INT 21H
    MOV CX,3
LOP:MOV DL,[TABLE+BX]
    INC BX
    CMP DL,30H
    JE  NEXT
    INT 21H
    DEC CX
    JNE LOP
    JMP ED
NEXT:DEC CX
    JMP LOP
ED: MOV AH,4CH
    INT 21H
CODES ENDS
    END START

我来回复

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