. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  输出数字出现乱码?  [待解决] 回复[ 4次 ]   点击[ 250次 ]  
hx_315java
[帖 主]   [ 发表时间:2013-03-25 13:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-15 09:17
最近在学习汇编语言,遇到了一个问题。怎么20+45打印出来的是乱码?
【代码附下】:

datas segment
x db 20
y db 45
n db ?    ; 存放x+y的结果
datas ends

codes segment
 assume cs:codes, ds:datas
start: mov ax, datas
       mov ds, ax
       
       mov dh, x
       mov dl, y
       add dl, dh
       mov n, dl
      
       mov ah, 02h
       mov dl, n
       add dl, 30h
       int 21h
       
       mov ah, 4ch
       int 21h
codes ends
    end start
以上代码是我在公司休息时凭感觉写出的,不知道是否正确。但是我肯定x+y输出来的是一个乱码,不是65,请各位高手、大侠帮帮忙?小弟才学汇编语言不就。
evedas
[第1楼]   [ 回复时间:2013-03-27 18:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-27 17:07
65+30h=71H;所以你显示的是ASCALL码为 71H 也就是 q。
hx_315java
[第2楼]   [ 回复时间:2013-03-27 18:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-15 09:17
怎样输出71h
evedas
[第3楼]   [ 回复时间:2013-03-28 10:42 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-27 17:07
加qq我们一起学汇编
evedas
[第4楼]   [ 回复时间:2013-03-28 10:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-27 17:07
datas segment 
x db 20 
y db 45 
n db ?    ; 存放x+y的结果 
datas ends 

codes         segment 
assume         cs:codes, ds:datas 
start:         mov ax, datas 
               mov ds, ax 
        
              mov ah, x 
               mov al, y 
               add al, ah       
               mov n, al        
       
gwx            mov al, n
               and al,0f0h
               mov ah,0
               mov cl,4
               shr al,cl
               mov cl,10
               div cl
               mov dl,ah
               add dl,30h
               mov ah,02
               int 21h       
               
dwx            mov al,n
                   and al,0fh
                   mov ah,0
                   div cl
                   mov dl,ah
                   add dl,30h
                   mov ah,02
                   int 21h         
       
              mov ah,1
                int 21h
                mov ah,4ch     ;结束,可以修改al设置返回码
            int 21h
codes         ends 
end                 start 
得出正确结果65
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved