首页 > 代码库 > 微机接口中的汇编语言

微机接口中的汇编语言

  之前汇编学的不是很好。乘这次微机接口把汇编语言算是补上来了。


  下面是这段时间的相对于微机接口中使用的汇编语言的笔记。




PTR



在没有寄存器名存在的情况下,用操作符“X ptr”指明内存单元的长度,X在汇编指令中可以为word 或者byte。
例如:
mov word ptr ds:[0],1
inc word ptr [bx]
move byte ptr ds:[0],1
inc byte ptr [bx]
在没有寄存器参与的内存单元访问指令中,必须要显性地告诉CPU所要访问的单元是字单元,还是字节单元。





XLAT




XLAT为查表命令,其操作为[BX]+[AL]---->AL


MOV

赋值语句:MOV dx,key ; key 为变量





OUT




一般用于写端口

MOV DX,PA ; PA为端口
OUT DX,AL ; AL为特定的命令如 8255 初始化





IN






一般用于写CPU

IN AL,DX; 端口对应的值不能直接写在AL中,需要先MOV进DX然后在IN进AL






OFFSET




获取偏移地址

MOV DX,OFFSET TAB ;TAB为数组,获取TAB的偏移地址,这里就是首地址





SEG




获取段地址

MOV DX,SEG INSTR ; 这里INSTR为中断程序,获取中断程序的段地址





lea






将一个近地址指针写入到指定的寄存器。格式:
LEA reg16,mem16
其中reg16必须是一个16位通用寄存器,mem16必须是一个存储器,执行这个指令后,就将mem16所指的16位偏移地址传送reg16中。
比如: LEA AX,BUF
就是将存储器中BUF所指的地址传送给AX.
区别MOV传送指令:
MOV传送的是地址所指的内容,而LEA只是地址。







关于几个常用DOS调用:





DOS调用先MOV进AH,即先存入要执行的命令,然后INT 21H 即执行命令

mov ah,4ch 退出程序

eg; mov ah,4ch 
      int 21h

mov ah,25h
写中断

mov ah,35h
读中断

mov ah,02h
写dl ; 常用于crt




微机接口中的汇编语言