鱼C论坛

 找回密码
 立即注册
查看: 3149|回复: 3

汇编实验7交流

[复制链接]
发表于 2011-2-28 20:15:34 | 显示全部楼层
;----------------------------------------------------------------------------
;  Name: 实验7 寻址方式在结构化数据访问中的应用
;  Author: Seely
;  Date: 21:31 2011-1-6  
;----------------------------------------------------------------------------

assume cs:codesg,ds:data,es:table

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个字符串  (0-53h)
        
        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个dword型数据  (54h-0A7h)
        
        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542,14430,15257,17800 
        
        ;以上是表示21年公司雇员人数的21个word型数据  (0A8h-0D1h)
        
data ends

table segment

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

codesg segment

start: mov ax,data
       mov ds,ax
       mov ax,table
       mov es,ax       
       mov bx,0
       mov si,0
       mov di,0
       
       mov cx,21
       
    s: mov al,[bx]
       mov es:[di],al          ;字符串第一个字符写到table段
       mov al,[bx+1h]    
       mov es:[di+1h],al        ;字符串第二个字符写到table段
       mov al,[bx+2h]
       mov es:[di+2h],al        ;字符串第三个字符写到table段
       mov al,[bx+3h]
       mov es:[di+3h],al        ;字符串第四个字符写到table段
       mov al,20h 
       mov byte ptr es:[di+4h],al       ;空格
       
       mov ax,[bx+54h]
       mov es:[di+5h],ax       ;收入前两字节低16位写到table段
       mov dx,[bx+56h]       
       mov es:[di+7h],dx        ;收入后两字节高16位写到table段   
       mov al,20h    
       mov byte ptr es:[di+9h],al       ;空格
       
       mov ax,[si+0A8h]         
       mov es:[di+0Ah],ax       ;雇员人数,16位除数写到table段
       mov al,20h 
       mov byte ptr es:[di+0Ch],al       ;空格
       
       mov ax,[bx+54h]          ;总收入,被除数,低16位放ax
       mov dx,[bx+56h]          ;总收入,被除数,高16位放dx
       div word ptr ds:[si+0A8h];做除法运算
       mov es:[di+0Dh],ax       ;将商写到table段
       mov al,20h
       mov byte ptr es:[di+0Fh],al      ;空格
       
       add bx,4
       add si,2
       add di,16       
       loop s
       
       mov ax,4c00h
       int 21h    
       
codesg ends

end start

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-3-10 06:10:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-8 18:48:38 | 显示全部楼层
你们都是自己独立完成的吗?我的意思是看教程之前完成的还是看教程之后完成的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-12 17:18:45 | 显示全部楼层
3楼。你栈空间没有定义,  SS没有初始化 SP 没有初始化。 请问这样可以使用栈吗?
我是新手。提出疑问请指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 09:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表