王爽 組合語言 實驗七

2022-02-06 19:08:21 字數 2231 閱讀 7376

;

王爽組合語言實驗七

assume cs:code,ds:data,es:table

data segment

db '

1975

','1976

','1977

','1978

','1979

','1980

','1981

','1982

','1983

'db '

1984

','1985

','1986

','1987

','1988

','1989

','1990

','1991

','1992

'db '

1993

','1994

','1995';

以上是表示21年的字串 4 * 21 = 84

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

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

;以上是表示21年公司總收入的dword型資料 4 * 21 = 84

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

dw 11542,14430,15257,17800

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

data ends

table segment

db 21 dup ('

year summ ne ??

') ;

'year summ ne ?? ' 剛好16個位元組

table ends

code segment

start:

;data資料 放在ds

mov ax,data

mov ds,ax

;table資料 放在 es

mov ax,table

mov es,ax

;三個暫存器初始化

mov bx,0

;data中資料定位(和idata結合,用於年份和收入)

mov si,0

;table中定位(和idata給合用於定位存放資料的相對位置)

mov di,0

;data中用於得到員工數

;cx迴圈次數

mov cx,21

;迴圈內容s:;

年;將年從data 到 table 分為高16位和低16位

mov ax,[bx]

moves:[si],ax

mov ax,[bx+2]

moves:[si+2],ax;空格

;table 增加空格

mov byte ptr es:[si+4],20h;收入

;將收入從data 到 table 分為高16位和低16位

mov ax,[bx+84]

moves:[si+5],ax

mov ax,[bx+86]

moves:[si+7],ax;空格

;table 增加空格

mov byte ptr es:[si+ 9],20h

;雇員數

;將雇員數從data 到 table

mov ax,[di + 168]

moves:[si + 10],ax;空格

;table 增加空格

mov byte ptr es:[si+12],20h

;計算工資

;取ds處工資,32位

mov ax,[bx + 84]

mov dx,[bx + 86]

;計算人均收入

div word ptr ds:[di + 168]

;將結果存入table處

moves:[si+13],ax;空格

;table 增加空格

mov byte ptr es:[si + 0fh],20h

;改變三個暫存器值

add si,16

add di,2

add bx,4

loop s

mov ax,4ch

int 21h

code ends

end start

**:

組合語言(王爽)實驗七

power idea公司從1975年到1995年的基本情況如下 年份收入 千美元 雇員人均收入 千美元 1975163 1976227 1977 3829 1978 135613?1979 239028?1980 800038?1995 5937000 17800 程式中已經定義好了這些資料,程式設...

王爽 組合語言 實驗10 1

assume cs code,ds data data segment db welcome to masm 0 data ends code segment start mov dh,8 行號 mov dl,3 列號 mov cl,2 顏色 mov ax,data mov ds,ax mov si...

王爽 組合語言 實驗7

assume cs codesg,ds data ss stack data segment db 1975 1976 1977 1978 1979 1980 1981 1982 db 1983 1984 1985 1986 1987 1988 1989 1990 db 1991 1992 1993...