|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小伙伴们你们好
我做这个实验得时候 弄了好久。。。。好几个小时才完成
还是看了小甲鱼得 视频 如果没有视频得画 我想我根本弄不出来
感谢小甲鱼
这里分享几个 我得错误点 。。。希望大家不要像我一样掉在坑里
下面是我得代码
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983' 首先我在这里出错了, 就是。。db 后跟着得元素之间 需要 逗号隔开。。我开始得时候没写。
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 11452,14430,15257,17800
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
codesg segment
start:mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov ax,stacksg
mov ss,ax
mov sp,10H
mov bx,0
mov si,0
mov di,0
mov cx,21
s0:push cx
mov cx,4
s1:mov al,[bx]
mov es:[di],al
inc bx
inc di
loop s1
inc di
mov ax,50h[bx]
push ax
mov dx,52h[bx]
mov es:[di],ax
add di,2
mov es:[di],dx
add di,2
inc di
mov ax,0a3H[bx]
mov es:[di],ax
add di,2
inc di
pop ax
div word ptr 0a8h[si]
mov es:[di],ax
add si,2
add di,2
inc di
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
总结
我用得方法 挺笨得 di 慢慢累加 为了 格式好看 有的地方 我还是用了 inc 其实可以用 add di ,3 但是方便大家看把
中间有一点 我push了 ax 是因为 我懒得改 寄存器了。。 因为我忘了后面要做除法了。。。中间把ax用了。。
我有个想法 想着 一次性 在 栈段把 数据写好 16个字节 在全部 loop 灌入到 table 里面 这应该是一个很有趣得事
因为才学了几天 好多知识 还很不熟练 在写这个程序得时候 我还是从新翻了笔记。。我觉得除法这块有点绕
几个寄存器也搞得我有点晕头转向
bx ds di 。。。
然后 再次感谢小甲鱼
|
|