第乙個問題 資料存在** ?
1. 絕大部分機器指令都是進行資料處理的指令,處理大致可分為3類:讀取、寫入、運算。在機器指令這一層來講,並不關心資料的值的多少,而關心指令執行前的一刻,它將要處理的資料所在的位置。指令在執行前,所要處理的資料可以在3個地方:
cpu內部、記憶體、埠。
在組合語言中如何表達資料的位置?組合語言中用3個概念來表達資料的位置
1) 立即數
對於直接包含在機器指令中的資料(
執行前存在cpu的指令緩衝器中),在組合語言中稱為:立即數(imm),在彙編指令中直接給出。
2) 暫存器
指令要處理的資料在暫存器中,在彙編指令中給出相應的暫存器名。
3) 段位址(sa)和偏移位址(ea)
指令要處理的資料在
記憶體中,在彙編指令中可用[x]的格式給出ea,sa在某個段暫存器中。
二 :如何描述乙個記憶體單元
要完整地描述乙個記憶體單元,需要兩種資訊
1)
2)
記憶體單元的長度(型別)。
單元的長度(型別)可以由具體指令中的其他操作物件(比如說暫存器)指出
「[x]」所表示的資料有兩種型別:位元組或字。是哪種型別由暫存器名或具體的運算決定
1) : (al)、(bl)、(cl)等得到的資料為位元組型;(ds)、(ax)、(bx)等得到的資料為字型。
2) :(al)=(20000h),則(20000h)得到的資料為位元組型;(ax)=(20000h),則(20000h)得到的資料為字型。
三 :如何才能找到要處理的資料
一般通過定址才能找到需要的資料
1) 什麼是定址方式: 當資料存放在記憶體中的時候,我們可以用多種方式來給定這個記憶體單元的偏移位址,這種
定位記憶體單元的方法
一般被稱為定址方式
四 指令要處理的資料有多長
1. 8086cpu的指令,可以處理兩種尺寸的資料,byte和word。所以在機器指令中要指明,指令進行的是字操作還是位元組操作。對於這個問題,組合語言中用以下方法處理。
1)
通過暫存器名指明
要處理的資料的尺寸:mov ax,1 inc al
2) 在沒有暫存器名存在的情況下,
用操作符x ptr指明記憶體單元的長
度,x在彙編指令中可以為word或byte。add word ptr [bx],2 inc byte ptr ds:[0]
3) 其他方法 有些
指令預設
了訪問的是字單元還是位元組單元,如 push [1000h]
3.數制的概念
16進製表示的資料後面加h,2進製的後面加b
乙個x進製的資料左移1位,相當於乘於x
4.16位機的意思:
(1)運算器一次最多處理16位的資料
(2)暫存器最大寬度為16位
(3)暫存器和運算器之間通路為16位,即資料匯流排16條
5.8086傳送實體地址方法是:段位址*16+偏移位址=實體地址
段位址*16必然是16的倍數,所以乙個段的起始位址也一定是16的倍數
偏移位址為16位,16位位址定址能力為64kb,所以乙個段最大長度為64kb
彙編基礎 一
組合語言的符號指令 組合語言是一種符號語言,它用 助記符 表示操作碼。下面給出80486符號指令與機器指令對照表 mov move傳送 add 加 sub 減 ret return 返回 指令長度 486指令長度 機器指令長度 為1 16位元組,規定多位元組指令占用連續的記憶體單元,存放指令第一位元...
組合語言基礎(一)
計算機系統包括硬體和軟體兩大部分。硬體 hardware 是指構成計算機的實在的物理裝置。軟體 software 一般是指在計算機上執行的程式。馮諾依曼設計思想的計算機由5大部件組成 控制器 運算器 儲存器 輸入裝置和輸出裝置。控制器 整個計算機的控制核心計算機內部所能識別和接受的資訊方式,並把他們...
彙編(一) 基礎知識
每一種微處理器,由於硬體和內部結構的不同,需要不同的電平脈衝來進行工作。所以每一種微處理器都有自己的機器指令集,即機器語言。機器語言晦澀難懂,於是產生組合語言。程式設計師用組合語言寫程式,轉化為機器語言後給計算機執行。編譯器將組合語言轉化為機器語言。微機儲存器的容量最小單位為 位元組 乙個儲存單元可...