|
主题 : : 实验7 [已解决] |
回复[ 7次 ]
点击[ 529次 ] | |
|
|
|
|
[帖 主]
[ 发表时间: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 | | |
|
|
|
|
[第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
结果不显示。初学不懂之处太多请指教 | | |
|
|
|
|
[第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 ;除法 | | |
|
|
|
|
[第3楼]
[ 回复时间:2012-06-15 21:12 ]
[引用]
[回复]
[ top ] | |
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36 |
|
|
|
|
|
[第4楼]
[ 回复时间:2012-06-15 22:40 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17 |
就是结果只显示年份其他的都没有,这程序到底哪里有问题 | | |
|
|
|
|
[第5楼]
[ 回复时间:2012-06-15 23:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36 |
正常,这是因为ascii码的原因。。。。
你可以看一下数据。
年份是以字符串形式存入的。
关于年份的都是30+数字。。。譬如1945-31 39 34 35
而别的都是直接数据。。。。。
后面应该就学ascii码了 | | |
|
|
|
|
[第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 ?? ')应该打成这样 | | |
|
|
|
|
[第7楼]
[ 回复时间:2012-06-17 18:00 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-26 20:17 |
此贴由 贴主 于 [ 2012-06-17 18:00 ] 结贴。 结贴原因:问题已解决 | | |
|