<<匯編語(yǔ)言>>---王爽 (實(shí)驗(yàn)7)(低效率版 : 多個(gè)循環(huán)串行)


簡(jiǎn)介 :

題目:Power idea公司從1975年成立一直到1995年基本情況如下:
年份 收入(千美元) 雇員(人) 人均收入(千美元)
1975 16 3 ?
1976 22 7 ?
1977 382 9 ?
1978 1356 13 ?
1979 2390 28 ?
1980 8000 38 ?
:
:
:
1995 5937000 17800 ?
下面的程序中,已經(jīng)定義好了這些數(shù)據(jù):

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個(gè)字符串
   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個(gè)dword型數(shù)據(jù)
   dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
   dw 11542,11430,15257,17800
   ; 以上是表示21年公司雇員人數(shù)的21個(gè)word型數(shù)據(jù)
data ends

table segment
   db 21 dup ('year summ ne ?? ')
table ends

編程:將data段中的數(shù)據(jù)按如下格式寫入到table段中,并計(jì)算21年中的人均收入(取整),結(jié)果也按照如下所示格式存在table段中:

Paste_Image.png

提示:可將data段中的數(shù)據(jù)看成是多個(gè)數(shù)組,而將table中的數(shù)據(jù)看成一個(gè)結(jié)構(gòu)型數(shù)據(jù)的數(shù)組,每個(gè)結(jié)構(gòu)型數(shù)據(jù)中包含多個(gè)數(shù)據(jù)項(xiàng)。可用bx定位每個(gè)結(jié)構(gòu)型數(shù)據(jù),用idata定位數(shù)據(jù)項(xiàng),用si定位數(shù)組項(xiàng)中每個(gè)元素,對(duì)于table中的數(shù)據(jù)的訪問(wèn)可采用[bx].idata和[bx].idata[si]的尋址方式。


代碼 :

assume cs:code,ds:data,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'
    ; 以上是表示21年的21個(gè)字符串
    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個(gè)dword型數(shù)據(jù)
    dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
    dw 11542,11430,15257,17800
    ; 以上是表示21年公司雇員人數(shù)的21個(gè)word型數(shù)據(jù)
data ends

table segment
    db 21 dup ('year summ ne ?? ')
table ends

stack segment
    dd 200H dup (0)
stack ends

code segment

    start:
        ; 初始化數(shù)據(jù)段寄存器
        mov ax, data
        mov ds, ax
        ; 設(shè)置偏移寄存器
        mov si, 0
        ; 將目標(biāo)內(nèi)存的段寄存器設(shè)置為擴(kuò)展段寄存器
        mov ax, table
        mov es, ax
        mov di, 0
        ; 先將年份寫到內(nèi)存中 (兩層循環(huán) , 外層循環(huán)行 , 內(nèi)層循環(huán)列)
        mov cx, 0015H ; 設(shè)置外層循環(huán)次數(shù) , 總共循環(huán) 21 次
        myloop_row_year:
                push dword ptr ds:[si] ; 4 字節(jié) -> dword
                add si, 4 
                pop dword ptr es:[di]
                add di, 0010H
            loop myloop_row_year

        ; 將收入復(fù)制如目標(biāo)地址
        xor di, di
        mov cx, 0015H
        myloop_row_summ:
                push dword ptr ds:[si] ; 4 字節(jié) -> dword
                add si, 4 
                pop dword ptr es:[di + 5]
                add di, 0010H
            loop myloop_row_summ

        ; 將雇員數(shù)復(fù)制如目標(biāo)地址
        xor di, di
        mov cx, 0015H
        myloop_row_ne:
                push word ptr ds:[si] ; 2 字節(jié) -> word
                add si, 2 
                pop word ptr es:[di + 1 + 4 + 1 + 4]
                add di, 0010H
            loop myloop_row_ne

        ; 計(jì)算平均產(chǎn)值
        mov bx, 0 ; 使用 bx 來(lái)表示偏移
        ; 開始循環(huán)獲取數(shù)據(jù)
        mov cx, 0015H ; 循環(huán)次數(shù)
        myloop_row_average:
            mov ax, es:[bx + 5]
            mov dx, es:[bx + 7]
            div word ptr es:[bx + 10]
            mov es:[bx + 13], ax
            add bx, 0010H
            loop myloop_row_average

    finish:
        mov ax,4C00H
        int 21H

code ends

end start
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,582評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,801評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,223評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,442評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,976評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,800評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,996評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評(píng)論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,233評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,702評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,991評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容