| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 821 人关注过本帖
标题:用汇编语言编程
只看楼主 加入收藏
zhenglc12
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-5
收藏
 问题点数:0 回复次数:5 
用汇编语言编程
程序运行后,提示输入字符串,(字符个数大于5个),按回车键后,以一定速率向右移动,移到右边,字符在从左边出来。
搜索更多相关主题的帖子: 汇编语言 
2010-12-05 21:57
zhenglc12
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-5
收藏
得分:0 
DATAS SEGMENT
    ;此处输入数据段代码
STR1 DB 'Please input a character string :',0dh,0ah,'$'


BUF DB 20 ;这里的20为指定存放字符的个数(理论上的)
DB ? ;
DB 20 DUP (?) ;这里的20是你在数据段开辟的空间
CRLF DB 0AH,0DH,"$";此处输入数据段代码 ;回车换行
  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
LEA DX,STR1 ;9号中断前提,给参数DX赋值,指定输出字符串所在的有效地址
MOV AH,9
INT 21H
MOV AH,10 ;10号中断,接收输入字符串,此时DX为存放字符串的有效地址
LEA DX,BUF
INT 21H
LEA DX,CRLF
MOV AH,9
INT 21H
 
 ;mov ah,2
 ;mov dl,2
 ;mov bh,0
 ;int 10h
 ;LEA DX,CRLF
;MOV AH,9
;INT 21H
 
;MOV CL,BUF+1 ;获取字符串中字符的个数
;LEA SI,BUF+2 ;间接寻址
;NEXT: MOV DL,[SI]
;MOV AH,2 ;2号中断输出单个字符
;INT 21H
;INC SI ;输出一个地址往后加1
;DEC CL ;顺便减少输出的次数
;JNZ NEXT ;此处输入代码段代码
;
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
2010-12-05 22:00
zhenglc12
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-5
收藏
得分:0 
上面的程序只能实现字符的输入,不能循环移动,希望高手给指点一下,谢谢!
2010-12-05 22:01
zhenglc12
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-5
收藏
得分:0 
DATAS SEGMENT
    ;此处输入数据段代码  
    STR1 DB 'Please input a character string :',0dh,0ah,'$'
    str10 db '                    $'
BUF DB 20 ;这里的20为指定存放字符的个数(理论上的)
DB ? ;这的?可变,实际存放字符的个数(系统自动计算)
DB 20 DUP (?) ;这里的20是你在数据段开辟的空间
CRLF DB 0AH,0DH,"$";此处输入数据段代码 ;回车换行
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    LEA DX,STR1 ;9号中断前提,给参数DX赋值,指定输出字符串所在的有效地址
MOV AH,9
INT 21H
MOV AH,10 ;10号中断,接收输入字符串,此时DX为存放字符串的有效地址
LEA DX,BUF
INT 21H
LEA DX,CRLF
MOV AH,9
INT 21H

mov ah,0
mov al,2
int 10h;黑白文本

mov dl,0              ;字符串向右移动

bbb2:
MOV   SI,OFFSET buf
mov di,0

bbb1:
mov dh,7 ;dh hang   dl lie
inc dl
mov ah,2
int 10h ;置光标位置

mov ah,09   ;9号功能
inc di
mov al,[si]
inc si
mov bh,0    ;显示页
mov bl,0eh ;color
mov cx,01 ;字符重复一次
int 10h

cmp di,0fh
jb bbb1

call delay1

sub dl,0fh
MOV   SI,OFFSET str10
mov di,0
ccc1:
mov dh,7 ;dh hang   dl lie
inc dl
mov ah,2
int 10h ;置光标位置

mov ah,09   ;9号功能

inc di
mov al,[si]
inc si
mov bh,0    ;显示页
mov bl,0eh ;color
mov cx,01 ;字符重复一次
int 10h
cmp di,0fh
jb ccc1

call delay2

sub dl,0dh
jmp bbb2


delay1 proc near
push cx
push bx
mov bx,1fffh
wait4: mov cx,0ffffh
wait5: loop wait5
dec bx
jnz wait4
pop bx
pop cx
ret
delay1 endp


delay2 proc near
push cx
push bx
mov bx,0ffh
wait2: mov cx,0ffffh
wait3: loop wait3
dec bx
jnz wait2
pop bx
pop cx
ret
delay2 endp              ;字符串向右移动结束


    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
2010-12-06 15:48
我不知道名字
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-8-7
收藏
得分:0 
回复 4楼 zhenglc12
谁告诉我怎么发贴啊QQ184288260谢谢!
2011-08-07 04:10
我不知道名字
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-8-7
收藏
得分:0 
想找人写程序,帮一下QQ184288260
2011-08-08 07:28
快速回复:用汇编语言编程
数据加载中...
 
   



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

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