[002][汇编语言]检测点2.1 寄存器 汇编指令 mov add

检测点2.1

  • mov add 指令


    检测点2.1 寄存器内容变化过程
  • 只有mov、add,四条语句完成计算2的四次方

2^4 = 16 = 2*2*2*2

2+2=4
4+4=8
8+8=16

mov ax,2
add ax,ax
add ax,ax
add ax,ax

十进制数62627 转换成 十六进制 F4A3H

  • H 后缀表示十六进制数
  • 十六进制数
十六进制
1 2 3 4 5 6 7 8 9 A B C D E F
A 表示十进制的10 以此类推
62627
1111010010100011
1111 0100 1010 0011
F 4  A 3

怎么来的呢?
以0100举例
0100
8421
只有4对应的位子是1
0*8 + 1*4 + 0*2 + 0*1 = 4
熟练之后直接就是 0+4+0+0=4
更熟练之后一眼就看出只有4
4无论在十进制还是十六进制都是4
所以最终结果里这里写成4

再以1010举例
1010
8421
对应就是8+2=10
10再写成A

汇编指令不区分大小写

mov ax,bx
MOV AX,BX

汇编指令与高级语言

mov ax,8      ax=8
mov ax,bx     ax=bx
add ax,bx     ax=ax+bx

16位寄存器AX 高位寄存器AH 低位寄存器AL

  • AX 是 16位寄存器
  • AH AL 是8位寄存
  • AH是AX的高8位
  • AL是AX的低8位
   AX
----------
AH | AL
  • 不同的角度看待AX
以二进制数 1010 0011 举例
AX  1010 0011
十六进制 A3
十进制 163

AH 是AX 高8位
AH 1010
十六进制 A
十进制 10

AL 是AX低8位
AL 0011
十六进制 3
十进制 3

三种读法会产生三种不同的结果
  • 使用8位寄存器,超过8位可以表示的数据丢失
mov ah,A8H
add ah,90

A-代表十进制的10
10+9=19=16+3 
0+8=8
说明需要进一位,但是ah只有8位,所以进位丢失
ah 里面的内容会变成 38H
  • 8位寄存器最大存放的十进制数为255(2^8-1)
以下是错误指令
mov al,666
666 超过了255 不能被放到8位寄存器al中
  • 不能再8位寄存器和16寄存器之间传递数据
以下是错误指令
mov al,ax

al 是ax的高8位寄存器
ax是16位寄存器
两个之间不能传递数据

寄存器与CPU

  • CPU 包括 运算器 +寄存器+控制器+内部总线
  • CPU 的重要部件是寄存器
  • 寄存器的作用是存储数据
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前天在做毕业论文的降重工作,用的是paperpass,对着查重报告的简明打印版,对着每句重复的话苦思冥想,...
    浣溪梦阅读 368评论 2 1
  • 写于大一临近考试却还无所事事的晚自习。 从六月跨向十一月,时光是只大妖怪,我不知它怎么会这么匆匆。大概在我拿着手机...
    矜笑阅读 282评论 0 0
  • 天气这么好 喝着从小卖部买来的冰水 在树下乘凉 听着孩童们的嘻戏声 悠闲的靠在躺椅上 多么舒心的日子
    温娴阅读 216评论 0 0