彙編 基礎試驗7

2022-06-01 21:54:06 字數 2389 閱讀 2952

assume cs:code,ss:stack,ds:data

data segment ;原始資料存放的地方

db '1975','1976','1977','1978','1979','1980','1981','1982'

db '1983','1984','1985','1986','1987','1988','1989','1990'

db '1991','1992','1993','1994','1995'

;year

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

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

;summ

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

dw 11542,14430,15257,17800

;nedata ends

table segment

;0123456789abcdef

db 21 dup ('year summ ne ?? ') ;處理後放資料的地方

table ends

stack segment stack

db 128 dup (0) ;預留棧空間

stack ends

code segment

;棧的設定

start: mov ax,stack ;讓ss的指標對準棧空間

mov ss,ax

mov sp,128 ;設定棧空間大小

;原始資料的設定

mov ax,data ;讓ds的指標對準原始資料空間

mov ds,ax

mov bx,0 ;讓偏移位址指標對準第乙個字元

;處理後的資料的設定

mov ax,table

mov es,ax ;讓es的指標對準處理後的資料的空間

;資料的移動

;迴圈開始 設定迴圈引數

mov cx,21 ;大迴圈次數

mov si,0 ;資料裡的指標

mov di,0 ;處理後空間偏移指標

mov si,0

yeardxh: push cx ;把21次迴圈弄進去

push bx ;重置bx

mov cx,2 ;小迴圈,迴圈次數4

yearxxh: mov ax,ds:[bx+si] ;第bx個字元移動

mov es:[bx+di],ax

add bx,2

loop yearxxh

pop bx

pop cx ;讓迴圈次數減1

add di,16

add si,4

loop yeardxh

;工資的移動

mov cx,21 ;初始化

mov bx,0

mov si,0

mov di,0

gongzidxh:

mov bx,0

;資料處理,從何而來,去何地方

mov ax,ds:[bx+si+84]

mov es:[bx+di+5],ax

mov ax,ds:[bx+si+2+84]

mov es:[bx+di+2+5],ax

add si,4

add di,16

loop gongzidxh

;;;員工人數

mov cx,21 ;初始化

mov bx,0

mov si,0

mov di,0

yuangongdxh:

mov bx,0

;資料處理,從何而來,去何地方

mov ax,ds:[bx+si+168]

mov es:[bx+di+10],ax

add si,2

add di,16

loop yuangongdxh

;;;;平均工資

mov cx,21 ;初始化

mov bx,0

mov si,0

mov di,0

pingjundxh:

mov bx,0

;資料處理,從何而來,去何地方

mov ax,es:[bx+5+di]

mov dx,es:[bx+7+di]

div word ptr es:[bx+10+di]

mov es:[bx+13+di],ax

add di,16

loop pingjundxh

mov ax,4c00h

int 21

code ends

end start

彙編試驗總匯

彙編試驗一 檢視cpu和記憶體,用機器碼指令和彙編指令程式設計 彙編試驗二 用機器指令和彙編指令程式設計 彙編試驗三 程式設計 編譯 連線 跟蹤 彙編試驗四 bx 和 loop 的使用 彙編試驗五 編寫 除錯具有多個段的程式 彙編試驗六 實踐課程中的程式 彙編試驗七 定址方式在結構化資料訪問中的應用...

彙編基礎學習7

博主 沒落的殘陽 這節來講解一下棧的延伸,堆疊 算是把昨天的整個理論基礎概念,給大家講解下。執行時棧 runtime stack 我們通常稱為 堆疊 這是由我們cpu硬體直接支援的,也是實現過程的呼叫和過程返回機制的基本組成部分。不知道大家是否知道rtl是什麼意思。如果學過程式的人都應該知道這個就是...

彙編基礎 cmp彙編指令

cmp是比較指令,cmp的功能相當於減法指令。它不儲存結果,只是影響相應的標誌位。其他的指令通過識別這些被影響的標誌位來得知比較結果。cmp指令格式 cmp 操作物件1,操作物件2 計算 操作物件1 操作物件2 但不儲存結果,只是根據結果修改相應的標誌位。舉例假如此時eax 0h 那麼cmp eax...