| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 878 人关注过本帖
标题:汇编中的宏问题
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:0 
汇编中的宏问题

;先把输入的字符存入char中 ;连续输入两个回车退出循环 ;然后显示输入的字符串 ;要求以空格间隔 ;每16个字符换行 ;si记录输入字符的个数 ;di指向保存的字符串地址 ;temp记录当前行已经输出的字符的个数 ; M_IN macro ;接受一个字符并存储 mov ah,01h mov [di],al inc di ;存储的地址加1 inc si ; 计数器加1 cmp al ,0dh;判断是不是回车 endm M_out macro ;格式化输出,记间隔输出字符 mov dl,[di] mov ah,02h int 21h

mov dl,0ah mov ah,02h int 21h mov dl,20h mov ah,02h int 21h int di dec si ;每输出一个字符,记述器减一 int temp endm data segment char db 100 dup (?) N equ $-char temp db 0; data ends

code segment assume cs:code ,ds:data start: mov ax,data mov ds,ax mov si,0 ;初始化输入字符的个数计数器为0 mov di,offset char main: M_IN jz next1 jmp short main next1: M_IN JZ exit1 jmp short main exit1: cmp si,N ;取(si)和N的较小值,作为需要输出的个数 jbe short next2 mov si,N next2: again: cmp temp,10h; jz next3 M_out cmp si,0 jz exit2 jmp again next3: M_out cmp si,0 ;如果输出记数器0,结束输出 jz exit2 mov temp,0 ;恢复行输出字符个数的记数 jmp short again exit2: mov ah,4ch; int 21h code ends end start

搜索更多相关主题的帖子: 计数器 字符 macro mov 汇编 
2005-10-22 23:28
快速回复:汇编中的宏问题
数据加载中...
 
   



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

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