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...