微机实验的汇编编程总结

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

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值