体验次手工汇编

体验次手工汇编

问题:

  1. 什么是机器语言?

    由二进制数字构成的程序,CPU可以直接对其解释、执行。不仅是汇编语言,用编程语言写的程序也都需要先转换成机器语言才能被执行。机器语言有时也叫做“原生代码”(Native Code)

  2. 通常把标识内存或I/O中存储单元的数字称作什么?

    地址。I/O中的寄存器也可以用地址来标识,哪个寄存器对应哪个地址,取决于CPU和I/O之间的布线方式。

  3. CPU中的标志寄存器(Flags Register)有什么作用?

    一旦执行了算术运算、逻辑运算、比较运算等指令后,标志寄存器并不会存放运算结果的值,而是会把运算后的某些状态存储起来,例如运算结果是否为0、是否产生了负数、是否有溢出等。

助记符:类似英语单词的昵称,这个昵称赋予给0和1的组合。

使用助记符的编程语言成为汇编语言,汇编语言的语法十分简单:把标签、操作码、操作数并排写在一行。

  • 标签的作用是为该行代码对应的内存地址起一个名字,编程时如果总要考虑“这一行的内存地址是什么来着”会很不方便。
  • 操作码就是表示做什么的指令。用助记符表示的指令是英语单词的缩写。汇编语言中提供了多少种助记符,CPU就有多少种功能。按功能这些指令可以分成运算、与内存的输入输出、与I/O的输入输出三类。
  • 操作数表示的是指令执行的对象。CPU的寄存器、内存地址、I/O地址或者直接给出的数字都可以作为操作数。如果某条指令需要多个操作数,那么它们之间就要用逗号分隔。操作数的个数取决于指令的种类,也有不需要操作数的指令。

CPU中带有不同种类的寄存器,与I/O的寄存器不同,不仅能存储数据,还具备对数据进行运算的能力。常见的有累加寄存器A、标志寄存器F、程序指针PC、栈顶指针SP。

在汇编语言中,可以将寄存器的名字指定为操作数。

IN/OUT指令的操作数必须是已存储在CPU寄存器中的数字,这是汇编语言的规定。

posted @ 2021-03-04 18:22  睿阳  阅读(81)  评论(0编辑  收藏  举报