汇编语言,查表法输出立方值

2025-02-25 09:38:04
推荐回答(2个)
回答1:

MOV AH,1;输入并回显N
INT 21H
push ax
MOV AH,2;回车换行
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
pop ax
有些函数会改变AX寄存器里的值,你能通过吗在我电脑上编译都通不过。

回答2:

STCK SEGMENT STACK 'STACK'
DW 32 DUP (0)
STCK ENDS

DATA SEGMENT
INPUT DB 'Please input n(0~9): $'
LFB DW 00H, 01H, 08H, 27H, 64H, 125H, 216H, 343H, 512H, 729H
OUTPUT DB 4 DUP(?), '$'
N DB 0
DATA ENDS

CODE SEGMENT
ASSUME SS:STCK, CS:CODE, DS:DATA

START PROC FAR
PUSH DS
SUB AX, AX
PUSH AX
MOV AX, DATA
MOV DS, AX
;-----------------------
MOV DX, OFFSET INPUT
MOV AH, 9
INT 21H

MOV AH, 1
INT 21H
MOV N, AL

MOV AH, 2
MOV DL, 0AH
INT 21H
MOV DL, 0DH
INT 21H

MOV BL, N
MOV BH, 0

AND BL, 0FH
SHL BX, 1
MOV AX, LFB[BX]
ADD AH, 30H
MOV OUTPUT, AH

MOV CL, 4
SHL AX, CL

AND AH, 0FH
ADD AH, 30H
MOV OUTPUT + 1, AH

SHL AX, CL

AND AH, 0FH
ADD AH, 30H
MOV OUTPUT + 2, AH
MOV DX, OFFSET OUTPUT
MOV AH, 9
INT 21H
RET
;-----------------------
START ENDP

CODE ENDS
END START