回 帖 发 新 帖 刷新版面

主题:高手来 帮我改改这个程序 求立方 的。  谢谢了

data segment                    ;数据堆栈开始
table dw 0,1,8,27,64,125,216,343,512,729,1000    ;定义tabel并输入1-10的立方数
welcome db 'please input a number of(1-10)','$'    ;提示信息输入的字符串
count equ $-welcome                ;将welcome中的字符串长度传递给count
data ends                    ;数据堆栈结束
stack segment stack                ;堆栈开始
 db 100 dup(?)                    ;分配100的堆栈空间
stack ends                    ;堆栈结束
code segment                    ;代码段开始
     assume cs:code,ds:data            ;定义cs与ds
start:                        ;开始
      mov ax,data                ;将data内容送ax处理
      mov ds,ax                    ;将ax中处理完毕的内容传递给数据堆栈
      mov cx,count                ;将count中存储的welcome字符串长度传递给cx
      mov bx,0                    ;bx清0
      lea dx,welcome                ;将welcome首地址传递给dx
      mov ah,09h                ;将09H传递给ah
      int 21h                    ;屏幕显示字符串
      mov ah,00h                ;将00H传递给ah
      int 16h                    ;键盘输入数据并将输入字的ASC码传递给al
      and al,0fh                ;屏蔽al中的高4位
      xor bx,bx                    ;将bx清0
      xor dx,dx                    ;dx清0
      mov bl,al                    ;将al中的内容传递给bl
      lea si,table                ;将table首地址传递给si
      mov dl,[si+bx]                ;将si中保存的table的首地址加上bx中存储的偏移量传递给dl
      mov ah,02h                ;将02H传递给ah
      int 21h                    ;输出结果
      ret                    ;返回DOS
code ends                    ;代码段结束
     end start                    ;开始结束

回复列表 (共1个回复)

沙发

算0~9的
data segment                                                             ;数据堆栈开始
    table dw 0,1,8,27,64,125,216,343,512,729,1000        ;定义tabel并输入1-10的立方数
    welcome db 'please input a number of(1-10)','$'        ;提示信息输入的字符串
    divv db 10
data ends                                                                    ;数据堆栈结束

stack segment stack                                                    ;堆栈开始
 db 100 dup(?)                                                        ;分配100的堆栈空间
stack ends                                                                ;堆栈结束

code segment                                                            ;代码段开始
     assume cs:code,ds:data                                        ;定义cs与ds
start:                                                                  ;开始
      mov ax,data                                                     ;将data内容送ax处理
      mov ds,ax                                                        ;将ax中处理完毕的内容传递给数据堆栈
            mov bx,offset table
                        
      lea dx,welcome                                                ;将welcome首地址传递给dx
      mov ah,09h                                                        ;将09H传递给ah
      int 21h                                                            ;屏幕显示字符串
      
      mov ah,08h                                                    ;键盘输入数据并将输入字的ASC码传递给al
      int 21h
      and al,0fh                                                        ;屏蔽al中的高4位
      
      add al,al
      xor ah,ah
      add bx,ax
      mov ax,[bx]
      
      div divv
      push ax
      xor ah,ah
      div divv
            push ax 
      mov dl,al
      add dl,30h
      mov ah,02h
      int 21h
      pop ax
      mov dl,ah
      add dl,30h
      mov ah,02h
      int 21h
      pop ax
      mov dl,ah
      add dl,30h
      mov ah,02h
      int 21h
      mov ah,4ch
      int 21h                                                                ;返回DOS
code ends                                                                    ;代码段结束
     end start                                                        ;开始结束

我来回复

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