| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1586 人关注过本帖
标题:我自己第一次编的汇编程序
取消只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
结帖率:59.52%
收藏
已结贴  问题点数:20 回复次数:15 
我自己第一次编的汇编程序
程序从键盘获取字符,如果不是数字键盘,结束程序,如果是空格表示 数字输入结束  
讲输入的字符ASCII吗 转换成数字 1 2 3 等,再通过输入 a=a*10+b计算出 转换成一个10进制的二进制数存放在shu中
再把 十进制数 对应位转换成ASCII 码  再显示出来

date segment
     shu dw ?
     ascii db 10 dup(?),'$'
date ends
code segment
     assume cs:code,ds:date
     mov ax,date
     mov ds,ax
     mov bx,0
     mov cx,0
node:mov ah,1
     int 21h
     cmp al,20H
     jz node3
     cmp al,30h
     jb over
     cmp al,39h
     ja over
     sub al,48
     mov ah,0
     mov shu,ax
     mov ax,10
     mul bx
     mov bx,shu
     add bx,ax
     inc cx   
     jmp node
node3:cmp cx,0
     jz over
     mov si,offset ascii
     add si,cx
     mov ax,bx
node1: mov dx,0
       mov bx,10
       div bx
       add dl,48
       mov [si],dl
       dec si
loop node1
      mov dx,offset ascii
      mov ah,9
      int 21h
over: mov ah,4ch
      int 21h
code ends
     end

哈哈哈哈哈哈啊啊哈哈

[ 本帖最后由 zhu224039 于 2012-10-1 11:44 编辑 ]
搜索更多相关主题的帖子: 二进制 十进制 
2012-10-01 11:41
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
Z哥哥 卖萌了。我想我可以编计算器了

[ 本帖最后由 zhu224039 于 2012-10-1 11:54 编辑 ]

我要成为嘿嘿的黑客,替天行道
2012-10-01 11:45
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
我编译的很好啊,masm5.0

我要成为嘿嘿的黑客,替天行道
2012-10-01 19:03
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 5楼 有容就大
我用的是masm5.0 编译没错误啊
程序代码:
date segment
     shu dw ?
     ascii db 10 dup(?),'$'
date ends
code segment
     assume cs:code,ds:date
     mov ax,date
     mov ds,ax
     mov bx,0
     mov cx,0
node:mov ah,1
     int 21h
     cmp al,20H
     jz node3
     cmp al,30h
     jb over
     cmp al,39h
     ja over
     sub al,48
     mov ah,0
     mov shu,ax
     mov ax,10
     mul bx
     mov bx,shu
     add bx,ax
     inc cx  
     jmp node
node3:cmp cx,0
     jz over
     mov si,offset ascii
     add si,cx
     mov ax,bx
node1: mov dx,0
       mov bx,10
       div bx
       add dl,48
       mov [si],dl
       dec si
loop node1
      mov dx,offset ascii
      mov ah,9
      int 21h
over: mov ah,4ch
      int 21h
code ends
     end 

我要成为嘿嘿的黑客,替天行道
2012-10-01 19:05
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 11楼 有容就大
我上面的代码 不是计算功能

只是从键盘获取  数字字符,以 空格键 为数据输入结束的标志
也就是 1 2 3 4 空格是合法的  其他的  1 2a34,就会自动结束程序的
 
功能是将 数字字符组合 ‘1’‘2’ 转换成 十进制数 12  存放到shu的地址里

然后再将 二进制12  显示在屏幕上

完成的动作  是从键盘上获取十进制数,并打印出 十进制数

和scanf(%d)  printf(%d)  功能类似

我要成为嘿嘿的黑客,替天行道
2012-10-01 21:56
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 9楼 有容就大
有哇,你给讲讲程序要满足什么要求

对了 微机原理 里说 DOS只能管理 640KB的内存空间是什么意思啊,不是1MB吗?

我要成为嘿嘿的黑客,替天行道
2012-10-01 21:59
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
大数 16位寄存器 也就AX BX CX DX  这几个寄存器,分别可以放 4个 字的内容  也就是 最大的无符号数为 2的 16*4 次方
采用高位+高位+CF 低位+低位  +  -

BCD码 计算方式 可以借用

我要成为嘿嘿的黑客,替天行道
2012-10-01 22:06
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
长老有什么好想法

我要成为嘿嘿的黑客,替天行道
2012-10-01 22:06
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
书上也是这么说的 ,为什么是640KB 而其他的地方不能用呢

我要成为嘿嘿的黑客,替天行道
2012-10-01 22:19
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 17楼 有容就大
乘法  怎么办呢   
除法

我要成为嘿嘿的黑客,替天行道
2012-10-01 22:25
快速回复:我自己第一次编的汇编程序
数据加载中...
 
   



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

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