王爽《組合語言》第四版 實驗7

2021-10-11 18:03:20 字數 1797 閱讀 1461

title: 王爽《組合語言》(第四版) 實驗7

tags:

id: 『258』

categories:

這個實驗確實是比較繁瑣,而且我先是手寫的**,有很多考慮錯誤的地方,最後話了2個多小時才解決掉。

;迄今為止最麻煩的程式

assume cs:code,es:table,ss:stack

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'

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

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

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

dw 11542,14430,15257,17800

data ends

table segment

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

table ends

stack segment

dw 8 dup(0)

stack ends

code segment

start:

mov ax,data

mov ds,ax

mov ax,table

mov es,ax

mov ax,stack

mov ss,ax

mov sp,10h

mov cx,21

mov bx,0

mov di,0

mov si,0

s:push cx

mov si,0

mov cx,2

s1:mov ax,[bx][si]

mov es:[si],ax

mov ax,54h[bx][si]

mov es:5[si],ax

add si,2

loop s1

mov ax,ds:0a8h[di]

mov es:[0ah],ax

mov ax,[54h+bx]

mov dx,[56h+bx]

div word ptr es:[0ah]

mov es:[0dh],ax

add di,2

add bx,4

;es++

mov ax,es

add ax,1

mov es,ax

pop cx

loop s

mov ax,4c00h

int 21h

code ends

end start

這段程式的迴圈只有兩個,而且事實上巢狀的迴圈也可以寫開來,相對而言這個寫的還可以,暫存器也十分寬裕,完全沒有用到bp,通過棧又可以很容易地不使用di。我個人對這一段非常滿意。

最後的部分結果

可以用來對照(我現在還不知道該怎麼輸出,只好查記憶體,我太難了)

Intel組合語言程式設計(第四版) 勘誤

intel組合語言程式設計 第四版 美 kip r.irvine 著 溫玉傑 張家生 羅雲彬 等譯 第六章,6.3.3.3有符號比較 原文 1 movax,80h 2cmp ax,7fh3ja isabove 4jg isgreater 原文解釋 在上面的例子裡,ja指令並不跳轉,因為無符號數7fh...

王爽彙編第四版 實驗10 編寫子程式最佳答案

子程式描述 名稱 show str 功能 在指定的位置,用指定的顏色,顯示乙個用0結束的字串。引數 dh 行號 cl 顏色,ds si指向字串的首位址 返回 無 就用舉例 在螢幕的8行3列,用綠色顯示data段中的字串。說明 下面貼出 assume cs code,ds data 注 書中 data...

王爽 組合語言 實驗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...