| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1382 人关注过本帖
标题:汇编输入一个数 再显示这个数?
取消只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:20 回复次数:5 
汇编输入一个数 再显示这个数?
我的意图是输入一个数后 ENTER 程序马上再显示这个数出来
貌似0-9可以用 SUM AL 30H来搞 2位 3位 多位的数怎么弄 是不是要存在一个字符数组里然后 通过单个字符转换
为数字 并循环输出?

有没有其他的方法?
搜索更多相关主题的帖子: 其他 
2012-05-25 13:36
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
程序代码:
;//////////////////////////////////
stack segment para stack 'stack'
 
      db  1024 dup(?)
     
stack ends

;////////////////////////////////////
data segment para stack 'stack'
 
    input  db 'Please input a number:$'
    crlf   db 0dh, 0ah, '$'
    output db 'The result is :$'
   
    ;----------------------------
    buffer_size db 50   ; max string length = 50
    actual_size db ?    ; actual string length
    chars       db 50 dup (20h)  ; store from here
   
data ends

;/////////////////////////////////////////////
code segment
  
     assume  ds:data, cs:code, ss:stack
    
   start:  mov ax, data
           mov ds, ax
          
           ; display the 'input' string context
           lea dx, input   
           mov ah, 09h
           int 21h
          
           ; get the buffer_size and input a string
           lea dx, buffer_size 
           mov ah, 0ah
           int 21h            
        
           ; get the actual_size and loop output
           mov cl, actual_size
           add cl, 0
           jnz display
           jmp exit_proc
          
           ;---------------------
           ;---------------------
      display:
           ; enter & change line
           lea dx, crlf
           mov ah, 09h
           int 21h
          
           ; display 'output' string
           lea dx, output
           mov ah, 09h
           int 21h
          
           ; get the string length and set end with '$'        
           xor cx, cx
           mov cl, actual_size
           mov dx, offset chars
           mov bx, dx
           add bx, cx
           mov BYTE ptr [bx], '$'
          
           ; display the single character
           mov ah, 09h
           int 21h
          
           ;------------------------
           ;------------------------   
      exit_proc:
           mov  ah, 4ch
           int  21h
          
code  ends

end start
这个是一个 输入一串字符再将其显示出来的代码 为什么我运行后无法输入字符串?
; get the buffer_size and input a string
           lea dx, buffer_size
           mov ah, 0ah
           int 21  
--
这个中断调用没起作用啊 为什么?

图片附件: 游客没有浏览图片的权限,请 登录注册

诚心求教!

[ 本帖最后由 有容就大 于 2012-5-25 15:21 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-05-25 14:46
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 3楼 于祥
非常感谢你帮我解答 原来这样
这个是我看资料 凑合的 还是对一些东西理解不透 比如JNZ 网上介绍的不怎么深入
 JNZ(或JNE)(jump if not zero, or not equal),汇编语言中的条件转移指令。结果不为零(或不相等)则转移。   格式: JNZ(或JNE) PRO   测试条件:ZF=0
那他在这个程序中是什么和什么比较 如果说是cl不为0就跳转 那么没有显示的dec cl 难道是隐含在里面的吗?

还有个问题 下面是我运行这个程序的过程
图片附件: 游客没有浏览图片的权限,请 登录注册


每运行一次程序都要输入他的绝对路径吗 我把程序放在了D:\masm\11\dis里 那要是一个超长的路径每次输入很麻烦啊 有没有简单的方法?

梅尚程荀
马谭杨奚







                                                       
2012-05-25 21:35
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用zklhp在2012-5-26 13:19:46的发言:


切到那个目录里就是了呗
怎么切啊 z版 还拿不稳刀 。不过我现在有个办法就是把路径复制后再黏贴 但是这个只是对于一个路径有效多个路径就又麻烦了,能比划下切的动作吗?

梅尚程荀
马谭杨奚







                                                       
2012-05-26 14:31
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 7楼 zklhp
哦 原来这样啊 谢谢啦

梅尚程荀
马谭杨奚







                                                       
2012-05-26 16:43
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 9楼 于祥
看来还的慢慢学习 还不清楚影响ZF标志位的一些东西是什么。

梅尚程荀
马谭杨奚







                                                       
2012-05-26 20:26
快速回复:汇编输入一个数 再显示这个数?
数据加载中...
 
   



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

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