-
-
王爽《汇编语言第二版》实验七 编程源码
-
发表于:
2011-7-29 18:23
9842
-
先聊聊吧,潜水这么长时间,除了升级为2个太阳,其他时间除了工作大部分都用来看书了,受益匪浅啊,值得一提的是王爽老师的《汇编语言》以前囫囵吞枣的看了几遍,都似懂非懂的,不过最近重新看起这本书,第八章刚读完,基本上都清晰了,刚好第八章末有个实验,王爽老师在书中说这是截至第八章结束最为复杂的一个程序,也许太笨,反正在我做起来确实是有头疼的感觉,花了近3个小时,在纸上写完了整个过程,不知道对不对,先发上来,我还连一门高级语言都不会呢,第一次写这么长的代码,还是汇编的,
,期望能得到各路高手的批评与指正,期待再进一步,谢谢!代码如下:
stacksg segment
dw 8 dup (0)
stacksg ends ;定义栈段,保护循环计数器使用
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16 ;设置ss:sp指向stacksg:0
mov ax,data
mov ds,ax
mov bx,0 ;设置ds:bx指向data:0
mov di,0
mov cx,21 ;设置外循环计数器
s0: push cx ;计数器入栈,保护不被内循环计数器覆盖
mov si,0
mov cx,4
s1: mov table:[di+si],ds:[bx+si]
inc si
loop s1 ;年份传入
pop cx ;计数器出栈,保证下次循环计数的正常使用
s2: push cx
mov si,0
mov cx,4
add bx,84
s3: mov table:[di+5+si],ds:[bx+si]
inc si
loop s3 ;收入传入
pop cx
s4: push cx
mov si,0
mov cx,2
add bx,168
s5: mov table:[di+10+si],ds:[bx+si]
inc si
loop s5 ;雇员数传入
pop cx
s6: push cx
mov,cx,1
s7: mov ax,table:[di+5] ;被除数收入低位字节传入
mov dx,table:[di+7] ;被除数收入高位字节传入
div word ptr table:[10] ;设置除数为雇员数
mov table:[13],ax ;人均输入传入
loop s7
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!