8086彙編 在記憶體單元中做表

2021-06-28 18:39:14 字數 1855 閱讀 9378

使用8086組合語言在記憶體中做一張公司記錄表。

彙編執行,顯示記憶體的結果為:

;以上是表示21年年數的21個字串

dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514

dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000

;以上是表示21年公司每年總收入的21個dword型資料

dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226

dw 11542,14430,45257,17800

;以上是表示21年公司每年雇員人數的21個word型資料

data ends

table segment

db 21 dup ('year summ ne ?? ')

table ends

stack segment

dw 0,0,0,0,0,0,0,0 ;dw 8 dup (0)

codesg segment

start: mov ax,data

mov ds,ax

mov ax,table

mov es,ax

mov ax,stack

mov ss,ax

mov sp,16

mov bx,0 ;year位置記錄

mov si,0 ;ne雇員數字置記錄

mov di,0 ;table行計數

mov cx,21

s: mov ax,ds:[bx] ;year錄入

mov es:[di],ax

mov ax,ds:[bx+2]

mov es:[di+2],ax

mov ax,ds:[bx+84] ;summ錄入

mov es:[di+5],ax

mov dx,ds:[bx+84+2]

mov es:[di+7],dx

push cx ;暫存

mov cx,ds:[168+si] ;ne雇員數錄入

mov es:[di+10],cx

div cx ;計算人均收入

mov es:[di+13],ax ;錄入人均收入

add bx,4 ;全部轉入下一行資料

add si,2

add di,16

pop cx ;恢復迴圈計數

loop s

mov ax,4c00h ;返回程式

int 21h

codesg ends

end start

8086彙編 記憶體互動

計算機資料可以被儲存在記憶體與磁碟中,對於計算機來說他們不同的資料有著不同的含義,他們可以被分為指令與資料,而這些儲存在計算機的資料都會有著固定的大小,根據計算機的儲存單元來決定。資料量 b kb mb gb tb.儲存單元 計算機對於資料都是採取二進位制的方式儲存,而對於cpu管理,資料主要以十六...

C 引用 記憶體單元的別名

1 引用是記憶體單元的別名 例如 int b a 給a取乙個別名為b,但不能寫成 b a 引用一定是和型別結合使用的。2 雖然引用是別名,但是c 在底層是以指標的方式來支援引用的特性的,在所有使用到引用變數的地方,系統都會自帶解引用過程。在下面的 中分別用了引用和指標,我們檢視一下反彙編,我們發現兩...

C語言 char型別與記憶體單元理解

特點一 c c裡面整個程式執行中型別不可變 強轉不是轉型別,而是數值的轉換 python指令碼語言,型別可變 隨著資料變化而變化型別 特點二 所有函式和變數都是先定義,再使用,不能邊定義邊使用 question2 c cpp檔案是原始檔 文字檔案 c cpp 預編譯 文字 文字,預編譯只處理標頭檔案...