回 帖 发 新 帖 刷新版面

主题:[讨论]一个程序出问题了!!!!!!!!!!

从键盘输入0-20之间一个自然数N,将其平方值送显示器.
例如:提示:
INPUT BYTE BCD:
输入:9
输出:81 

stack  segment stack'stack'
       dw 32 dup(0)
stack  ends
data   segment
INPUT  DB'PLEASE INPUT N(0-2O):$'
LFB  DB '0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400'
N      DW 6,0,6 DUP(0)


   
data   ends
code   segment
begin  proc far
       assume  ss: stack,cs: code,ds: data
       push ds
       sub ax,ax
       push ax
       mov ax,data
       mov ds,ax

       MOV DX,OFFSET INPUT
       MOV AH,9
       INT 21H
       MOV DX,OFFSET N
       MOV AH,10
       INT 21H
       MOV DL,0AH
       MOV AH,2
       INT 21H
       
       MOV AX,WORD PTR N
       AND AX,0F0FH
       MOV CL,2
       SHL AH,1
       MOV BYTE PTR N,AH
       SHL AH,CL
       ADD AH,BYTE PTR N
       ADD AL,AH
       
       SHL AL,CL
       MOV AH,0
       ADD AX,OFFSET  LFB
       MOV AH,9
       INT 21H
       
            
        ret
begin   endp
code    ends
        end begin 

程序运行出现乱码 是哪的问题啊 高手指点下 谢谢哦

回复列表 (共2个回复)

沙发

我把程序改了下 不出现乱码了 但是把INPUT中的给调用出来了 没调用出LFB中的 
我用查表法做的!对最后怎么查表的程序还存在疑问?希望大家指点下 谢谢

板凳

;从键盘输入0-20之间一个自然数N,将其平方值送显示器.
;例如:提示:
;INPUT BYTE BCD:
;输入:9
;输出:81

stack  segment stack'stack'
       dw 32 dup(0)
stack  ends
data   segment
INPUT  DB'PLEASE INPUT N(0-2O):$'
LFB  DB '  0$  1$  4$  9$ 16$ 25$ 36$ 49$ 64$ 81$100$121$144$169$196$225$256$289$324$361$400$'
N    Db 3,0,3 DUP(0)
data   ends
code   segment
begin  proc far
       assume  ss: stack,cs: code,ds: data
       push ds
       sub ax,ax
       push ax
       mov ax,data
       mov ds,ax

       start:
       MOV DX,OFFSET INPUT
       MOV AH,9
       INT 21H
       MOV DX,OFFSET N
       MOV AH,10
       INT 21H
       MOV DL,0AH
       MOV AH,2
       INT 21H

        MOV Al, N[2]
        and al,0fh
       .if n[1]>1
         mov bl,10
         mul bl
         and n[3],0fh
         add al,n[3]
       .elseif n[1]==0
         jmp start
       .endif
       
       .if al>20
         jmp start
       .endif
       
       mov bl,4
       mul bl
       mov bx,ax
       lea dx,LFB[bx]
       mov ah,9
       int 21h

        ret
begin   endp
code    ends
        end begin

我来回复

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