| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2895 人关注过本帖
标题:关于如何在DOS里面得到汇编程序的运行结果!求教
只看楼主 加入收藏
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11787
专家分:43421
注 册:2006-5-13
收藏
得分:0 
很久没有实际接触汇编程序了,好象DOS中断有接收数据输入的入口,但不能肯定。调用BIOS中断接收键盘输入的键码,然后进行分析判断和处理这应该不存在问题,是可以做到的。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-11-28 16:27
爱末流
Rank: 2
等 级:论坛游民
帖 子:101
专家分:16
注 册:2011-6-3
收藏
得分:0 
data    segmentstr   
 db      0ah,0dh
num     db      4 dup(?),'H$'
tab     db      '0123456789ABCDEF'
data    ends

code    segment
  assume  cs:code,ds:data
  begin:  mov     ax,data
  mov     ds,ax  ;初始化代码段
  xor     bx,bx
  mov     cx,10  ;进制
  next:   mov     ah,1      
  int     21h        
  cmp     al,0dh
   jz      conv  ;如果是回车,表示输入结束,转换开始
   push    ax  ;保存输入值,当然还有AH,因为堆栈的存取必须以字为单位
   mov     ax,bx
  mul     cx
 mov     bx,ax  ;将先前的结果向上推一位
pop     ax  ;取回本次输入
and     al,0fh  ;屏蔽掉无用位,类SUB AL,30H
xor     ah,ah  ;高位归零
add     bx,ax  ;合并本次输入
jmp     next
conv:   mov     ax,bx  ;开始转换
 mov     ch,4
 lea     bx,tab  ;没有见这个直接定址表起什么用啊!!!
mov     cl,4
lea     si,num
lopa:   rol     ax,cl  ;把高4位移到低4位  
push    ax
and     ax,000fh ;取出低4位
mov     [si],al  ;按地址由低到高的顺序将结果由高到底存放
inc     si
pop     ax
dec     ch      
 jnz     lopa      
 lea     dx,str
 mov     ah,9      
  int     21h  ;回车换行   
  mov     ah,4ch      
 int     21h
code    ends
end     begin



;算法描述:
;总体来说是以二进制为中介,
;先将输入视为十进制,转换为二进制数保存在BX中
;然后再将这个二进制数转换为十六进制数保存在num开始的单元中
;十进制转换为二进制的过程:
;初始化:假设第一次输入前的输入为0
;对于每次输入,将前面输入的各位均提升一位,即百位变千位,十位变百位,个位变十位,然后当前的输入填到个位,重复该步操作直到遇到回车符

;二进制转换为十六进制:
;因为每4个二进制位可以由1个十六进制位表示,所以依次取出4个二进制位就可以
;①每次循环移动4位,将高4位移动到低4位后,取出低4位
;②将取出的数依次写入num开始的单元中
;③重复①-②4次
;输出时:(这段代码没有,所以我说,没有见直接定址表起什么用)
;从num开始以字节为单位取数
;以得到的数字为偏移量,查表tab,得到对应的十六进制字符,输出,重复4次
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

网上别人写的



2012-11-28 16:32
快速回复:关于如何在DOS里面得到汇编程序的运行结果!求教
数据加载中...
 
   



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

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