(一個模板:我看了這一段文字 (引用文字),有這個問題 (提出問題)。 我查了資料,有這些說法(引用說法),根據個人實踐,我獲得這些經驗(描述本身的經驗)。 可是我仍是不太懂,個人困惑是(說明困惑)。【或者】我反對做者的觀點(提出做者的觀點,本身的觀點,以及理由)。 )html
MUL A B 將累加器的值與B寄存器的值相乘,乘積的低位字節存回累加器,高位字節存回B寄存器(說明:將累加
器A和寄存器B內的無符號整數相乘,產生16位的積,低位字節存入A,高位字節存入B寄存器.若是積大於FFH,則溢出
標誌位(OV)被設定爲1,而進位標誌位爲0)數組
IMUL 整數乘法. 以上兩條,結果回送AH和AL(字節運算),或DX和AX(字運算),
DIV A B 將累加器的值除以B寄存器的值,結果的商存回累加器,餘數存回B寄存器(說明:無符號的除法運算,
將累加器A除以B寄存器的值,商存入A,餘數存入B。執行本指令後,進位位(C)及溢出位(OV)被清除爲0)安全
IDIV 整數除法. 以上兩條,結果回送: 商回送AL,餘數回送AH, (字節運算); 或 商回送AX,餘數回送DX, (字運算).數據結構
-----------------------邏輯運算指令---------------------------------
AND 與運算.
OR 或運算.
XOR 異或運算.
NOT 取反.
TEST 測試.(兩操做數做與運算,僅修改標誌位,不回送結果).
SHL 邏輯左移.
SHR 邏輯右移.
SAL 算術左移.(=SHL)
SAR 算術右移. (左移是同樣的,右移是不一樣的.邏輯右移補0,算術右移補最高位)
ROL 循環左移. ( ((unsigned char)a) << 5 ) | ( ((unsigned char)a) >> 3 )
rol eax,cl ==> eax=(eax<<cl)+(eax>>(32-cl));
ROR 循環右移. ror eax,cl ==> eax=(eax>>cl)+(eax<<(32-cl));
RCL 經過進位的循環左移.
RCR 經過進位的循環右移.
以上八種移位指令,其移位次數可達255次.
移位一次時, 可直接用操做碼. 如 SHL AX,1.
移位>1次時, 則由寄存器CL給出移位次數.
如 MOV CL,04
SHL AX,CL函數
-----------------------數據轉移指令---------------------------------學習
通用數據傳送指令.
MOV 傳送字或字節.
MOVSX 先符號擴展,再傳送.
MOVZX 先零擴展,再傳送.
PUSH 把字壓入堆棧.
POP 把字彈出堆棧.
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次壓入堆棧.
POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次彈出堆棧.
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次壓入堆棧.
POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次彈出堆棧.
BSWAP 交換32位寄存器裏字節的順序
XCHG 交換字或字節.( 至少有一個操做數爲寄存器,段寄存器不可做爲操做數)
CMPXCHG 比較並交換操做數.( 第二個操做數必須爲累加器AL/AX/EAX )
XADD 先交換再累加.( 結果在第一個操做數裏 )
XLAT 字節查錶轉換.
── BX 指向一張 256 字節的表的起點, AL 爲表的索引值 (0-255,即 0-FFH); 返回 AL測試
爲查表結果. ( [BX+AL]->AL )
輸入輸出端口傳送指令.
IN I/O端口輸入. ( 語法: IN 累加器, {端口號│DX} )
OUT I/O端口輸出. ( 語法: OUT {端口號│DX},累加器 )
輸入輸出端口由當即方式指定時, 其範圍是 0-255; 由寄存器 DX 指定時,
其範圍是 0-65535.優化
----------------------- 標誌傳送指令-----------------------設計
LAHF 標誌寄存器傳送,把標誌裝入AH.
SAHF 標誌寄存器傳送,把AH內容裝入標誌寄存器.
PUSHF 標誌入棧.
POPF 標誌出棧.
PUSHD 32位標誌入棧.
POPD 32位標誌出棧.
0012F618 |00A8E5A8 ASCII "nk'MHBh30"指針
-----------------------程序轉移指令 -----------------------
1>無條件轉移指令 (長轉移)
JMP 無條件轉移指令
CALL 過程調用
RET/RETF過程返回.
2>條件轉移指令 (短轉移,-128到+127的距離內)
( 當且僅當(SF XOR OF)=1時,OP1<OP2 )
JA/JNBE 不小於或不等於時轉移.
JAE/JNB 大於或等於轉移.
JB/JNAE 小於轉移.
JBE/JNA 小於或等於轉移.
以上四條,測試無符號整數運算的結果(標誌C和Z).
JG/JNLE 大於轉移.
JGE/JNL 大於或等於轉移.
JL/JNGE 小於轉移.
JLE/JNG 小於或等於轉移.
以上四條,測試帶符號整數運算的結果(標誌S,O和Z).
JE/JZ 等於轉移.
JNE/JNZ 不等於時轉移.
JC 有進位時轉移.
JNC 無進位時轉移.
JNO 不溢出時轉移.
JNP/JPO 奇偶性爲奇數時轉移.
JNS 符號位爲 "0" 時轉移.
JO 溢出轉移.
JP/JPE 奇偶性爲偶數時轉移.
JS 符號位爲 "1" 時轉移.
3>循環控制指令(短轉移)
LOOP CX不爲零時循環.
LOOPE/LOOPZ CX不爲零且標誌Z=1時循環.
LOOPNE/LOOPNZ CX不爲零且標誌Z=0時循環.
JCXZ CX爲零時轉移.
JECXZ ECX爲零時轉移.
4>中斷指令
INT 中斷指令
INTO 溢出中斷
IRET 中斷返回
5>處理器控制指令
HLT 處理器暫停, 直到出現中斷或復位信號才繼續.
WAIT 當芯片引線TEST爲高電平時使CPU進入等待狀態.
ESC 轉換到外處理器.
LOCK 封鎖總線.
NOP 空操做.
STC 置進位標誌位.
CLC 清進位標誌位.
CMC 進位標誌取反.
STD 置方向標誌位.
CLD 清方向標誌位.
STI 置中斷容許位.
CLI 清中斷容許位.
(statistics.sh腳本的運行結果截圖)
正確答案: A B 你的答案: C
正確答案: B 你的答案: A
A .
buf
B .
temp
C .
swap
D .
buffp0
正確答案: A C D 你的答案: C D
int main()
{
int i=0;
for(i=0; i<100; i++)
b[i] = i;
printf("the b[3]= %d\n", b[3]);
return 1;
}
其中b[100]存放在()節
A .
.text
B .
.data
C .
.bss
D .
.rodata
正確答案: C 你的答案: B
正確答案: C 你的答案: B
正確答案: C 你的答案: B
- [20155219](http://www.cnblogs.com/paypay/) - 結對照片
- 結對學習內容 - XXXX - XXXX - ...
xxx
xxx
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/0 | 1/1 | 3/3 | |
第二週 | 32/32 | 1/2 | 4/7 | |
第三週 | 109/141 | 1/3 | 8/15 | |
第四周 | 58/199 | 1/4 | 8/15 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
計劃學習時間:XX小時
實際學習時間:XX小時
改進狀況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)