通过中断int21h显示有点问题~望牛人指导一下
但是运行时候调用int 21h ah=9的显示字符串以$结尾的中断例程效果如下,不知道是为什么,请牛人帮忙分析一下
assume cs:code,ds:data
data segment
db 18 dup (0)
data ends
code segment
read:db 9,8,7,4,2,0
start: mov ax,cs
mov ds,ax
mov ax,data
mov es,ax
mov di,3
mov bx,offset read
mov cx,6
ok:push cx
mov al,[bx];端口号
out 70h,al;向70端口写入地址
in al,71h;向71端口读入数据
mov ah,al
mov cl,4;移4位
shr ah,cl;获得十位数码
and al,00001111b;获得个位数码
add al,30h;转换个位为ASCII码
add ah,30h;转换十位为ASCII码
mov es:[si],ah;存放高位
mov es:[si+1],al;存放低位
add si,3
inc bx
pop cx
loop ok
mov byte ptr es:[si-1],'$';存放结尾符号
mov byte ptr es:[2],'/';添加符号
mov byte ptr es:[5],'/'
mov byte ptr es:[11],':'
mov byte ptr es:[14],':'
;以下为显示
mov ah,2;置光标
mov bh,0;第0页
mov dh,10;行数
mov dl,12;列数
int 10h
mov ax,data
mov ds,ax
mov dx,0;ds:ax 指向字符串的首地址 data:0
mov ah,9;在光标位置显示字符串以$结尾
int 21h
mov ax,4c00h
int 21h
code ends
end start