微机原理

如题所述

  其实我觉得,在学习微机原理这一块,最让我觉得棘手就是这个汇编语言了,在学它的过程中,觉得还是有点吃力,尤其是它的指令很多的,有时候总是把它给记混了,在上机的时候这个问题最突出了,如果是自己写程序的话,总是写不对,而且运行不了,唯一的解决办法就是看老师写在实验参考书上的程序了,但是自己的编程能力上没有得到有效的提高。
  下面介绍一些数据传送指令:
  ⑴通用数据传送指令(General Purpose Data Transfer)
  ① MOV传送指令
  指令格式:MOV  目的,  源
  指令功能:将源操作数(一个字节或一个字)传送到目的操作数。
  ②PUSH进栈指令(Push Word onto Stack)
  指令格式:PUSH  源
  指令功能:将源操作数堆入堆栈
  ③POP出栈指令(Pop Word off Stack)
  指令格式:POP  目的
  指令功能:把当前的SP所指向的堆栈顶部的一个字送到指定的目的操作数。
  ④XCHG 交换指令(Exchange)
  指令格式:XCHG 目的,源
  指令功能:把一个字或字节的源操作数和目的操作数相交换,交换地址所存放的内容。
  ⑤XLAT表转换指令(Table Lookup-Translation)
  指令格式:XLAT 转换表
  或XLAT
  指令功能:将一个字节从一种代码转换成另一种代码。
  使用XLAT指令之前必须先建立一个表格,并将表格的起始地址装入BX寄存器中。AL中事先也要送一个初值,这个值等于表头地址与所要查找的某一项之间的位移量。
  2.输入输出指令(Input and Output)
  输入输出指令用来完成I/O端口与累加器之间的数据传送,指令中给出I/O端口的地址值。
  ⑴IN输入指令(Input)
  指令格式:
  ①IN  AL,端口地址
  或IN  AX,断口地址
  ②IN  AL,DX    端口地址存放在DX寄存器中
  或IN  AX,DX
  指令功能:从8位端口读入一个字节到AL寄存器,或从16位端口读一个字到AX寄存器。
  ⑵OUT输出指令(Output)
  指令格式:
  ①OUT 端口地址,AL
  或OUT  断口地址,AX,
  ② OUT  DX ,AL    端口地址存放在DX寄存器中
  或OUT  DX ,AX
  指令功能:从AL寄存器读入一个字节到8位端口,或从AX寄存器读一个字到16位端口。
  3.地址目标传送指令(Address Object Transfer)
  ⑴LEA取有效地址指令(Load Effective Address)
  指令格式:LEA 目的,源
  指令功能:取源操作数的地址偏移量,并把它送往目的操作数所在的单元
  ⑵LDS将双字指针送到寄存器和DS指令(Load Poniter using DS)
  指令格式:LDS 目的,源
  指令功能:从源操作数指定的存储单元中取出一个变量的4字节地址指针,送进一对目的寄存器。其中前两个字节(表示变量的偏移地址)送到指令中指定的目的寄
温馨提示:答案为网友推荐,仅供参考