1)显示字符
mov ah,01h
int 10h //显示AL对应的字符
2)显示字符串
mov ah,06h
int 10h // 显示DS:BX=字符串首址
3)从键盘读字符(查询方式,而不是中断等待)
mov ah,00h
int 16h //输入的字符放在 al中
3)取键盘缓冲区状态
mov ah,01h
int 16h // al=字符码,ZF=0
4)
程序正常退出:
可以为:
mov ah,4ch
int 21h
或者为
push DS
mov ax,00h
push ax
....//程序代码
ret
退出
5)
今天做的是8255A并行接口应用实验,最后的代码为:
stack segment stack
dw 64 dup(?)
stack ends
code segment
assume cs:code
start:
//下边三行是为了ret返回用的,如果没有调用其他函数,这三行也可以不写
push ds
mov ax,00h
push ax
mov al 82h //即:1000 0010 表示A输出,B输入(8255A芯片)
out 63h,al //这里设定为 控制端口的地址为63h
a1:
in al,61h; //设置B为输入端口地址
out 60h,al;//设置A为输出端口地址
mov ah,00h//也可以是mov ah,01h,表示查询那个键(pc下的键盘键)被按下
int 16h
cmp al,51h //这里51h是大写"Q",的ASCII码,千万不要用'q',系统不支持的,我就这里浪费了很多时间
jnz a1
ret
code ends
end start
stack segment stack
dw 64 dup(?)
stack ends
code segment
assume cs:code
start:
push ds;
+微机实验书p100
mov cx,000ah
A1: cmp cx,000h
jnz A2
in AL,21h
or al,80h
out 21h ,al
sti
hlt
A2: sti
jmp a1
IRQ7:
mov ax,0137;//即是 ah=01, al=37='7'
int 10h
dec cx
mov al,20h ;//发中断结束命令
out 20h ,al
cli
iret
code ends
end start