組合語言 第三版 王爽 實驗七 獨立完成

2021-08-08 21:24:25 字數 2509 閱讀 8539

assume cs:codesg

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年的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, 15257, 17800

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

;可以看成 3 個陣列

; ds:[0] 0

; ds:[54h] 84

; ds:[a8h] 168

data ends

table segment

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

table ends

; stack segment

; db 16 dup ('0')

; stack ends

codesg segment

start: mov ax, data

mov ds, ax ;初始化 ds 段

mov ax, table

mov es, ax ;初始化 es 段

; mov ax, stack

; mov ss, ax

; mov sp, 10h ;初始化 ss 棧

mov bp, 0 ;控制陣列索引

mov di, 0

mov bx, 0 ;控制table的每一行

mov cx, 21 ;迴圈次數21次,21個結構體

s:

mov si, 0;

mov ax, ds:[0 + bp]

mov es:[bx].0[si], ax

add si, 2

mov ax, ds:[0 + bp + 2]

mov es:[bx].0[si], ax

;----------------年份複製完成

mov byte ptr es:[bx + 4], ' ' ;空格

mov si, 0;

mov ax, ds:[54h + bp]

mov es:[bx].5[si], ax

add si, 2

mov ax, ds:[54h + bp + 2]

mov es:[bx].5[si], ax

;----------------收入複製完成

mov byte ptr es:[bx + 9], ' ' ;空格

mov si, 0;

mov ax, ds:[168 + di]

mov es:[bx].10[si], ax

;----------------雇員數複製完成

mov byte ptr es:[bx + 12], ' ' ;空格

mov si, 0

; push bx ;把bx存起來,因為除法要用

mov ax, ds:[168 + di];用記憶體也可以存除法的除數

mov ds:[0], ax

; mov bx, ds:[168 + di] ;mov bx, ax ;因為ax值暫沒被覆蓋,除數為16位

mov ax, ds:[54h + bp] ;除數為16位,被除數32位,低16位放入ax

mov dx, ds:[54h + bp + 2];高16位放入dx

div word ptr ds:[0]

; pop bx ;除法算完之後再復原

mov es:[bx].13[si], ax

;----------------平均收入計算完成

mov byte ptr es:[bx + 15], ' ' ;空格

add bp, 4 ;每次複製兩個位元組

add di, 2 ;每次複製乙個位元組

add bx, 16 ;每次移動乙個結構體的資料

loop s

mov ax, 4c00h

int 21h

codesg ends

end start

王爽《組合語言(第三版)》 實驗七

萌新學彙編 邊學邊練 以下是實驗七的練手 assume cs codesg,ss stack data segment db 1975 1976 1977 1978 1979 1980 1981 1982 1983 db 1984 1985 1986 1987 1988 1989 1990 1991...

王爽彙編第三版 實驗七

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

《組合語言》王爽第三版 實驗9

datas segment 此處輸入資料段 db w 00000010b,e 00000010b,l 00000010b,c 00000010b,o 00000010b db m 00000010b,e 00000010b,0,t 00100100b,o 00100100b,0 db m 01110...