Loading... <!-- wp:paragraph --> <p>这个实验确实是比较繁琐,而且我先是手写的代码,有很多考虑错误的地方,最后花了2个多小时才解决掉。</p> <!-- /wp:paragraph --> <!-- wp:code --> <pre class="wp-block-code"><code>;迄今为止最麻烦的程序 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</code></pre> <!-- /wp:code --> <!-- wp:paragraph --> <p>这段程序的循环只有两个,而且事实上嵌套的循环也可以写开来,相对而言这个写的还可以,寄存器也十分宽裕,完全没有用到bp,通过栈又可以很容易地不使用di。我个人对这一段非常满意。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>最后的部分结果</p> <!-- /wp:paragraph --> <!-- wp:image {"id":259,"sizeSlug":"large"} --> <figure class="wp-block-image size-large"><img src="https://www.cjovi.icu/usr/uploads/2020/10/QQ截图20201019170857.png" alt="" class="wp-image-259"style=""></figure> <!-- /wp:image --> <!-- wp:paragraph --> <p>可以用来对照(我现在还不知道该怎么输出,只好查内存,我太难了)</p> <!-- /wp:paragraph --> 最后修改:2021 年 01 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,那听听上面我喜欢的歌吧