打字猴:1.700413906e+09
1700413906
1700413907 OUT           (1),A
1700413908
1700413909 JP            LOOP
1700413910
1700413911 标签的作用是为该行代码对应的内存地址起一个名字。编程时如果总要考虑“这一行的内存地址是什么来着?”就会很不方便,所以在汇编语言中用标签来代替地址。用汇编语言编程时可以在任何需要的标签的地方“贴上”名称任意的标签。在代码清单3.2所示的程序中,使用了名为LOOP:的标签
1700413912
1700413913 操作码就是表示“做什么”的指令。因为用助记符表示的指令是英语单词的缩写,比如LD是Load(加载)的缩写,所以多少能猜出其含义。汇编语言中提供子多少种助记符,CPU就有多少种功能。Z80 CPU的指令全部加起来有70条左右,这里先把主要的指令列在表3.1中,请大家粗略浏览一下。在浏览的过程中请注意这些指令的分类,按功能这些指令可以分成运算、与内存的输入输出和与I/O的输入输出三类。这是因为计算机能做的事也只有输入、运算、输出这三种了
1700413914
1700413915 操作数表示的是指令执行的对象。CPU的寄存器、内存地址、I/O地址或直接给出的数字都可以作为操作数。如果某条指令需要多个操作数,那么它们之间就要用逗号分隔。操作数的个数取决于指令的种类。也有不需要操作数的指令,比如用于停止CPU运转的HALT指令
1700413916
1700413917 汇编语言的语法和英语祈使句的语法很像。若对比英语的祈使句Give me money和汇编语言的语句,就可以看出在英语的祈使句中,一开头放置了一个表示“做什么”的动词,这个动词就相当于汇编语言中的操作码。在动词后面放置了一个表示“动作作用到什么上”的宾语,这个宾语就相当于汇编语言中的操作数。因为程序的作用是向CPU发出指令,而且编程语言又是由说英语的人发明的,所以编程语言与英语祈使句类似也就不足为奇了
1700413918
1700413919 构成机器语言的是二进制数,而在汇编语言中,则使用十进制数和十六进制数记录数据。若仅仅写出123这样的数字,表示的就是十进制数;而像123H这样在数字末尾加一个H(H表示Hexadecimal,即十六进制数),表示的就是十六进制数。在代码清单3.2所示的程序中,使用的都是十进制数
1700413920
1700413921 表3.1 Z80 CPU中的主要指令
1700413922
1700413923 指令的种类   助记符       功能
1700413924
1700413925 运算指令
1700413926
1700413927 ADD A,num      把数值num加到寄存器A的值上
1700413928
1700413929       ADD A,reg     把寄存器reg的值加到寄存器A的值上
1700413930
1700413931       SUB num           把寄存器A的值中减去数值num
1700413932
1700413933       SUB reg           把寄存器A的值中减去寄存器reg的值
1700413934
1700413935       INC reg           将寄存器reg的值加1
1700413936
1700413937       DEC reg           将寄存器reg的值减1
1700413938
1700413939       AND num           计算寄存器A的值和数值num的逻辑积
1700413940
1700413941       AND reg           计算寄存器A的值和寄存器reg的值的逻辑积
1700413942
1700413943       OR num        计算寄存器A的值和数值num的逻辑和
1700413944
1700413945       OR reg        计算寄存器A的值和寄存器reg的值的逻辑和
1700413946
1700413947       XOR num           计算寄存器A的值和数值num的逻辑异或
1700413948
1700413949       XOR reg           计算寄存器A的值和寄存器reg的值的逻辑异或
1700413950
1700413951       SLA reg           对寄存器reg的值进行算数左移运算
1700413952
1700413953       SRA reg           对寄存器reg的值进行算数右移运算
1700413954
1700413955       SRL reg           对寄存器reg的值进行逻辑右移运算
[ 上一页 ]  [ :1.700413906e+09 ]  [ 下一页 ]