..............
disBuffer db '123456$' 要显示的字符串
col db 5在屏幕上的位置
row db 10
..............
main:
mov ax,200h
mov bx,0
mov dl,[col]
mov dh,[row]
int 10h以上几行用于定位当前光标位置
lea dx,disBuffer
mov ax,0900h
int 21h显示字符串
call funcRL
mov cx,1延时控制,可以根据要求设置1、2、3……
call funcDelay
mov ah,0bh
int 21h看下键盘有无输入,如果有就退出程序
or al,al
jz main没有输入,去继续循环
mov ax,4c00h
int 21h
funcRL: 左移一位的子程序
push ax
push cx
push si
mov cx,5
lea si,disBuffer
mov bl,[si]
inc si
RlLoop:
mov al,[si+1]
mov [si],al
inc si
loop RlLoop
mov [si],al
pop si
pop cx
pop ax
ret
funcDelay: 延时子程序,如果没有延时,太快了,无法看清字符
push bx
push cx
push dx
dLoop1:
mov bx,1000h
dLoop2:
mov dx,0ffffh
dLoop3:
sub dx,1
jnz dLoop3
sub bx,1
jnz dLoop2
loop dLoop1
pop dx
pop cx
pop bx
ret
程序没有调试,大意如些。希望能帮到你。
.286CODES SEGMENT
ASSUME CS:CODES
ORG 100H
START: MOV DX,5678H
MOV CX,0F000H
AND CX,DX 提取原DX的高4位保存于CX
SHR CX,12 CX低4位即原DX高4位
MOV AX,1234H
MOV BX,0F000H
AND BX,AX 提取原AX的高4位保存于BX
SHR BX,12 使BX低4位即原AX高4位
SHL AX,4 AX左移4位,低4位自动补0
OR AX,CX 使原DX高4位成为AX低4位
SHL DX,4 DX左移4位,低4位自动补0
OR DX,BX 使原AX高4位成为DX低4位
INT3
CODES ENDS
END START
以上汇编程序编译链接生成exe文件在Win7的DOS环境运行通过,
程序运行结果:DX=6781H, AX=2345H
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)