| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1602 人关注过本帖
标题:9*9乘法表终于搞出来了,有容大哥。
取消只看楼主 加入收藏
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:7 
9*9乘法表终于搞出来了,有容大哥。
rt,对于我把这个写出来,花了很多时间,也学会了很多知识,代码有待改进,向各位大牛请调。
程序代码:
;#Mode=DOS
;MASMPlus 单文件代码模板 - 纯 DOS 程序
;--------------------------------------------------------------------
;单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.
;编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式
;当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选->创建工程.必须有多个文件

assume cs:code,ds:data,ss:stack
data segment
     bmul    db 0
     mulshu  db 0
data ends

stack segment
     dw 128 dup(?)
stack ends

code segment
       ;寄存器初始化
start:  mov ax,data
     mov ds,ax
     mov ax,stack
     mov ss,ax
     mov sp,128
    
     mov cx,9
     mov al,bmul     ;ax存放被乘数
     mov bl,mulshu   ;bx存放乘数
     mov ax,0
    
     ;用两个循环计算并且显示
  s1:inc ax
     mov bx,0
  s2:inc bx
     push ax
     push bx
     add al,30h
     add bl,30h
     mov dl,al
     mov ah,2
     int 21h
     mov dl,42
     mov ah,2
     int 21h
     mov dl,bl
     mov ah,2
     int 21h
     mov dl,61
     mov ah,2
     int 21h
     pop bx
     pop ax
     push ax
     push bx
    
     mul bl
     call show  ;显示计算结果
    
     mov ah,02
     mov dl,32
     int 21h    ;显示空格
     pop bx
     pop ax
     cmp ax,bx
     jnz s2
    
     call hh   ;回车换行
     loop s1
    
     ;查看结果并返回dos
     mov ah,01
     int 21h
     mov ah,4ch
     int 21h
     ;
     ;功能:回车换行
  hh:
     push ax
     push dx
     mov ah,02
     mov dl,0dh
     int 21h
     mov ah,02
     mov dl,0ah
     int 21h
     pop dx
     pop ax
     ret
     ;
     ;功能:把乘积转换为字符
show:
     push dx
     push ax
    
     call diw   ;实施除法除10获取积的各个位数
      
     add ah,30h
     add al,30h
     push ax
     mov dl,al
     mov ah,02
     int 21h
     pop ax
     mov dl,ah
     mov ah,02
     int 21h
     pop dx
     pop ax
     ret
     ;
     ;功能:求积的位数,ah存放个位,al存放十位
 diw:
     push bx
     mov bx,10
     div bl
     pop bx
     ret
    
     code ends
     end start
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 小习小习 于 2012-11-8 16:32 编辑 ]
搜索更多相关主题的帖子: 大哥 知识 
2012-11-08 16:27
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
回复 2楼 zklhp
z版给点意见 ==我把效果发上去

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-08 16:29
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
回复 4楼 有容就大
嗯,去搞搞

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-08 18:54
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
程序代码:
;#Mode=DOS
;MASMPlus 单文件代码模板 - 纯 DOS 程序
;--------------------------------------------------------------------
;单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.
;编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式
;当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选->创建工程.必须有多个文件

assume cs:code,ds:data,ss:stack
data segment
     bmul    db 0
     mulshu  db 0
data ends

stack segment
     dw 128 dup(?)
stack ends

code segment
       ;寄存器初始化
start:  mov ax,data
     mov ds,ax
     mov ax,stack
     mov ss,ax
     mov sp,128
    
     mov cx,9
     mov al,bmul     ;ax存放被乘数
     mov bl,mulshu   ;bx存放乘数
     mov ax,0
    
     ;用两个循环计算并且显示
  s1:inc ax
     mov bx,0
  s2:inc bx
     push ax
     push bx
     add al,30h
     add bl,30h
     mov dl,al
     mov ah,2
     int 21h
     mov dl,42
     mov ah,2
     int 21h
     mov dl,bl
     mov ah,2
     int 21h
     mov dl,61
     mov ah,2
     int 21h
     pop bx
     pop ax
     push ax
     push bx
    
     mul bl
     call show  ;显示计算结果
    
     mov ah,02
     mov dl,32
     int 21h    ;显示空格
     pop bx
     pop ax
     cmp ax,bx
     jnz s2
    
     call hh   ;回车换行
     loop s1
    
     ;查看结果并返回dos
     mov ah,01
     int 21h
     mov ah,4ch
     int 21h
     ;
     ;功能:回车换行
  hh:
     push ax
     push dx
     mov ah,02
     mov dl,0dh
     int 21h
     mov ah,02
     mov dl,0ah
     int 21h
     pop dx
     pop ax
     ret
     ;
     ;功能:把乘积转换为字符
show:
     push dx
     push bx
     push ax
    
     call diw ;实施除法除10获取积的各个位数
     push ax
     cmp al,0
     jz ok1
     add al,30h
     mov dl,al
     mov ah,02
     int 21h

 ok1:pop ax
     mov bx,ax
     add ah,30h
     mov dl,ah
     mov ah,02
     int 21h
     cmp bl,0
     ja ok2
     mov dl,32
     mov ah,02
     int 21h

 ok2:pop ax
     pop bx
     pop dx
     ret
     ;
     ;功能:求积的位数,ah存放个位,al存放十位
 diw:
     push bx
     mov bx,10
     div bl
     pop bx
     ret
    
     code ends
     end start
图片附件: 游客没有浏览图片的权限,请 登录注册
差不多与效果一样了

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-08 20:01
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
以下是引用有容就大在2012-11-8 19:40:21的发言:

代码排版也可以改进改进
我传本书到论坛上了 有兴趣可以看下 我现在也正在读这个
https://down.bccn.net/3560.html
呵呵 捞点下载分。
,我只有一个资源分

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-08 20:03
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
回复 9楼 有容就大
谢谢大哥

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-08 22:41
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
回复 2楼 zklhp
z版,给了个色,对我莫大鼓励啊!谢谢Z版

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-11 12:11
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
回复 14楼 zkg009
膜拜,我还是菜,你的有些东西还没见过

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-18 11:33
快速回复:9*9乘法表终于搞出来了,有容大哥。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020620 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved