王爽汇编语言C硬盘读写,王爽汇编语言学习笔记(范文).doc
本科畢業(yè)設(shè)計(論文)外文資料翻譯
第 PAGE \* Arabic 1 頁第 PAGE \* Arabic 1 頁
第一章 基礎(chǔ)知識
◎匯編語言由3類指令組成
匯編指令:機器碼的助記符,有對應(yīng)機器碼。
偽指令:沒有對應(yīng)機器碼,由編譯器執(zhí)行,計算機并不執(zhí)行
其他符號:如+-*/,由編譯器識別,沒有對應(yīng)機器碼
◎一個CPU有n根地址線,則可以所這個CPU的地址線寬度為n,這樣的CPU最多可以尋找2的n次方個內(nèi)存單元。
◎ 1K=2^10B 1M=2^20B 1G=2^30B
◎8086 CPU地址總線寬度為20,尋址范圍為00000~FFFFF
00000~9FFFF 主存儲器地址空間(RAM)
A0000~BFFFF 顯存地址空間
C0000~FFFFF 各類ROM地址空間
第二章 寄存器(CPU工作原理)
◎16位結(jié)構(gòu)描述了一個CPU具有下面幾個方面的結(jié)構(gòu)特性
運算器一次最多可以處理16位的數(shù)據(jù)
寄存器的最大寬度為16位
寄存器和運算器之間的通路為16位
◎8086有20位地址總線,可以傳送20位地址,達(dá)到1M的尋址能力。采用在內(nèi)部用兩個16位地址合成的方法來形成一個20位的物理地址
◎物理地址 = 段地址 × 16 + 偏移地址
◎在編程是可以根據(jù)需要,將若干地址連續(xù)的內(nèi)存單元看作一個段,用段地址×16定位段的起始地址(基礎(chǔ)地址),用偏移地址定位段中的內(nèi)存單元。段地址×16必然是16的倍數(shù),所以一個段的起始地址也一定是16的倍數(shù);偏移地址位16位,16位地址的尋址能力為64KB,所以一個段的長度最大為64KB
◎8086有四個段寄存器 CS、DS、SS、ES
◎CS為代碼段寄存器,IP為指令指針寄存器。任意時刻,設(shè)CS中內(nèi)容為M、IP中內(nèi)容為N,8086CPU從內(nèi)存M×16+N讀取一條指令執(zhí)行
◎不能用mov修改CS、IP,因為8086CPU沒有提供這樣功能,可用指令JMP 段地址:偏移地址。JMP 2AE3:3 JMP AX 修改IP
第三章 寄存器(內(nèi)存訪問)
◎DS數(shù)據(jù)段寄存器。不能將數(shù)據(jù)直接送入段寄存器,所以『MOV DS, 1』不正確
◎字在存儲時要兩個連續(xù)的內(nèi)存單元,低位在低地址,高位在高地址
◎[address]表示一個偏移地址為address的內(nèi)存單元
◎SS:SP指向棧頂元素
◎PUSH AX:(1)SP = SP - 2;(2)AX送入SS:SP
◎POP AX:(1)SS:SP送入AX;(2)SP = SP + 2
◎PUSH/POP 寄存器
PUSH/POP 段寄存器
PUSH/POP 內(nèi)存單元
第四章 第1個程序
◎可執(zhí)行文件包含兩部分:程序和數(shù)據(jù),相關(guān)的描述信息
◎程序加載后, ds中存放這程序所在內(nèi)存區(qū)的段地址,這個內(nèi)存區(qū)的偏移地址為0,策程序所在的內(nèi)存區(qū)的地址為ds:0;這個內(nèi)存區(qū)的前256個字節(jié)中存放的是PSP,dos用來和程序進(jìn)行通信。從256字節(jié)處向后的空間存放的是程序。
第五章 [BX]和loop指令
◎[BX]表示一個內(nèi)存單元,它的段地址在ds中,偏移地址在bx中。MOV AX,[BX] MOV AL,[BX] MOV [BX],AX
◎loop要進(jìn)行兩步操作,CX=CX-1;判斷cx中值,不為零則轉(zhuǎn)至標(biāo)號處執(zhí)行程序,為零則向下執(zhí)行。
◎masm將指令 mov ax,[0] 當(dāng)作 mov ax,0 處理
解決方法可以為 mov bx,0 使用寄存器
mov ax,[bx]
或 mov ax,ds:[0] 直接給出段地址所在的段寄存器
◎loop中不可使用 mov [cx],cx
第六章 包含多個段的程序
◎dw 定義字型數(shù)據(jù)
◎end 標(biāo)號 定義程序入口點
◎定義多個段,同定義代碼段相同。定義僅僅是為了程序閱讀方便
◎assume cs:code,ds:data,ss:stack是偽指令,將定義的具有一定用途的段和相關(guān)的寄存器聯(lián)系起來
◎?qū)τ诙?#xff0c;如果數(shù)據(jù)占N個字節(jié),則程序加載后實際占有空間為:(N/16+1)*16,N的16整數(shù)
第七章 更靈活的定位內(nèi)存地址的方法
◎and 按位與 and al, 0EFh
◎or 按位或 or al, 20h
◎字母大小寫轉(zhuǎn)換:
大寫(xx0x xxxx) and al, 0EFh
小寫(xx1x xxxx) or al, 20h
◎mov ax,[200+bx] == mov ax,[bx+200] == mov ax,200[bx] == mov ax,[bx].200 段地址為ds,偏移地址為bx+200
◎si和di示8086CPU中和bx功能相近的寄存器,si和di不能分成兩個8位寄存器來使用
◎一般來說,在需要暫存數(shù)據(jù)的時候,都應(yīng)該使用棧
第八章 數(shù)據(jù)處理的兩個基本問題
◎bx,si,di,bp
1。在80
總結(jié)
以上是生活随笔為你收集整理的王爽汇编语言C硬盘读写,王爽汇编语言学习笔记(范文).doc的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机二级c语言题库缩印,2011年9月
- 下一篇: Android源代码介绍,Android