檢測點2.1
-
mov add 指令
檢測點2.1 寄存器內(nèi)容變化過程 只有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
十進制數(shù)62627 轉換成 十六進制 F4A3H
- H 后綴表示十六進制數(shù)
- 十六進制數(shù)
十六進制
1 2 3 4 5 6 7 8 9 A B C D E F
A 表示十進制的10 以此類推
- 在線轉換工具 Decimal to Hex
https://codebeautify.org/decimal-hex-converter
Decimal to Hex - 手工計算蔬将,先轉換成二進制,再用8421碼寫成十六進制
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
匯編指令不區(qū)分大小寫
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
以二進制數(shù) 1010 0011 舉例
AX 1010 0011
十六進制 A3
十進制 163
AH 是AX 高8位
AH 1010
十六進制 A
十進制 10
AL 是AX低8位
AL 0011
十六進制 3
十進制 3
三種讀法會產(chǎn)生三種不同的結果
- 使用8位寄存器臊恋,超過8位可以表示的數(shù)據(jù)丟失
mov ah,A8H
add ah,90
A-代表十進制的10
10+9=19=16+3
0+8=8
說明需要進一位,但是ah只有8位虱肄,所以進位丟失
ah 里面的內(nèi)容會變成 38H
- 8位寄存器最大存放的十進制數(shù)為255(2^8-1)
以下是錯誤指令
mov al,666
666 超過了255 不能被放到8位寄存器al中
- 不能再8位寄存器和16寄存器之間傳遞數(shù)據(jù)
以下是錯誤指令
mov al,ax
al 是ax的高8位寄存器
ax是16位寄存器
兩個之間不能傳遞數(shù)據(jù)
寄存器與CPU
- CPU 包括
運算器 +寄存器+控制器+內(nèi)部總線
- CPU 的重要部件是寄存器
- 寄存器的作用是存儲數(shù)據(jù)