. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->数据处理的两个基本问题
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验7  [已解决] 回复[ 7次 ]   点击[ 529次 ]  
12345678911
[帖 主]   [ 发表时间:2012-06-15 19:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17
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个字符窜
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整数据 
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型数据 
data ends  table segment  
 db 21 dup('year sum 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   
      mov al,[bx+1]  
      mov es:[di+1],al   
      mov al,[bx+2]  
      mov es:[di+2],al   
      mov al,[bx+3]  
      mov es:[di+3],al   
      mov ax,84[bx]  
      mov dx,86[bx]  
      mov es:5[di],ax 
      mov es:7[di],dx    
      mov ax,168[si]  
      mov es:10[di],ax    
      mov ax,84[bx]  
      mov dx,86[bx]    
      div word ptr es:10[di] 
      mov es:13[di],ax  
      add bx,4  
      add si,2 
      add di,16 
      loop s  
      mov ax,4c00h 
      int 21h    
      codesg ends   
      end start
12345678911
[第1楼]   [ 回复时间:2012-06-15 19:07 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17
我debug发现
-t
AX=0005  BX=0004  CX=0015  DX=0001  SP=0000  BP=0000  SI=0002  DI=0010 DS=0B67  ES=0B75  SS=0B67  CS=0B88  IP=005D   NV UP EI PL NZ NA PO NC 0B88:005D E2B7         
 LOOP    0016 
-p 
AX=014D  BX=0054  CX=0000  DX=2580  SP=0000  BP=0000  SI=002A  DI=0150 DS=0B67  ES=0B75  SS=0B67  CS=0B88  IP=005F   NV UP EI PL NZ NA PE NC 0B88:005F B8004C        
MOV     AX,4C00 
-d0b75:0 60 
0B75:0000  31 39 37 35 20 10 00 00-00 6E 03 00 3F 05 00 65   1975 ....n..?..e 
0B75:0010  31 39 37 36 75 16 00 00-00 20 07 00 79 03 00 72   1976u.... ..y..r 
0B75:0020  31 39 37 37 20 7E 01 00-00 3F 09 00 61 2A 00 73   1977 ~...?..a*.s 
0B75:0030  31 39 37 38 65 4C 05 00-00 65 0D 00 20 68 00 6D   1978eL...e.. h.m
0B75:0040  31 39 37 39 3F 56 09 00-00 72 1C 00 75 55 00 6E   1979?V...r..uU.n 
0B75:0050  31 39 38 30 79 40 1F 00-00 73 26 00 20 D2 00 20   1980y@...s&. .. 
0B75:0060  31                                                
结果不显示。初学不懂之处太多请指教
12345678911
[第2楼]   [ 回复时间:2012-06-15 20:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17
mov al,[bx]        
 mov es:[di],al          
 mov al,[bx+1]         
 mov es:[di+1],al          
 mov al,[bx+2]         
 mov es:[di+2],al          
 mov al,[bx+3]          
mov es:[di+3],al ;表示年
 mov ax,84[bx]      
 mov dx,86[bx]    
 mov es:5[di],ax    
 mov es:7[di],dx ;总收入
 mov ax,168[si]       
 mov es:10[di],ax ;总人数
 div word ptr es:10[di]     
 mov es:13[di],ax  ;除法
fpamc
[第3楼]   [ 回复时间:2012-06-15 21:12 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36
你想问什么?
12345678911
[第4楼]   [ 回复时间:2012-06-15 22:40 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17
就是结果只显示年份其他的都没有,这程序到底哪里有问题
fpamc
[第5楼]   [ 回复时间:2012-06-15 23:11 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36
正常,这是因为ascii码的原因。。。。
你可以看一下数据。
年份是以字符串形式存入的。
关于年份的都是30+数字。。。譬如1945-31 39 34 35
而别的都是直接数据。。。。。

后面应该就学ascii码了
12345678911
[第6楼]   [ 回复时间:2012-06-17 18:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17
db 21 dup('year sum ne ??')我是这句话没有打好
db 21 dup('year summ ne ?? ')应该打成这样
12345678911
[第7楼]   [ 回复时间:2012-06-17 18:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17
此贴由 贴主 于 [ 2012-06-17 18:00 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved