源程序:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov es,ax
mov ax,c
mov ds,ax
mov bx,0
mov cx,8
s: mov al,es:[bx]
add [bx],al
inc bx
loop s
mov ax,b
mov es,ax
mov bx,0
mov cx,8
s1: mov al,es:[bx]
add [bx],al
inc bx
loop s1
mov ax,4c00h
int 21h
code ends
end start
过程记录:
-r
AX=0000 BX=0000 CX=0060 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1451 ES=1451 SS=1461 CS=1464 IP=0000 NV UP EI PL NZ NA PO NC
1464:0000 B86114 MOV AX,1461
-t
AX=1461 BX=0000 CX=0060 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1451 ES=1451 SS=1461 CS=1464 IP=0003 NV UP EI PL NZ NA PO NC
1464:0003 8EC0 MOV ES,AX
-t
AX=1461 BX=0000 CX=0060 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1451 ES=1461 SS=1461 CS=1464 IP=0005 NV UP EI PL NZ NA PO NC
1464:0005 B86314 MOV AX,1463
-t
AX=1463 BX=0000 CX=0060 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1451 ES=1461 SS=1461 CS=1464 IP=0008 NV UP EI PL NZ NA PO NC
1464:0008 8ED8 MOV DS,AX
-t
AX=1463 BX=0000 CX=0060 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1461 SS=1461 CS=1464 IP=000A NV UP EI PL NZ NA PO NC
1464:000A BB0000 MOV BX,0000
-t
AX=1463 BX=0000 CX=0060 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1461 SS=1461 CS=1464 IP=000D NV UP EI PL NZ NA PO NC
1464:000D B90800 MOV CX,0008
-t
AX=1463 BX=0000 CX=0008 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1461 SS=1461 CS=1464 IP=0010 NV UP EI PL NZ NA PO NC
1464:0010 26 ES:
1464:0011 8A07 MOV AL,[BX] ES:0000=01
-t
AX=1401 BX=0000 CX=0008 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1461 SS=1461 CS=1464 IP=0013 NV UP EI PL NZ NA PO NC
1464:0013 0007 ADD [BX],AL DS:0000=00
-t
AX=1401 BX=0000 CX=0008 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1461 SS=1461 CS=1464 IP=0015 NV UP EI PL NZ NA PO NC
1464:0015 43 INC BX
-t
AX=1401 BX=0001 CX=0008 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1461 SS=1461 CS=1464 IP=0016 NV UP EI PL NZ NA PO NC
1464:0016 E2F8 LOOP 0010
-p
AX=1408 BX=0008 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1461 SS=1461 CS=1464 IP=0018 NV UP EI PL NZ NA PO NC
1464:0018 B86214 MOV AX,1462
-t
AX=1462 BX=0008 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1461 SS=1461 CS=1464 IP=001B NV UP EI PL NZ NA PO NC
1464:001B 8EC0 MOV ES,AX
-t
AX=1462 BX=0008 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1462 SS=1461 CS=1464 IP=001D NV UP EI PL NZ NA PO NC
1464:001D BB0000 MOV BX,0000
-t
AX=1462 BX=0000 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1462 SS=1461 CS=1464 IP=0020 NV UP EI PL NZ NA PO NC
1464:0020 B90800 MOV CX,0008
-t
AX=1462 BX=0000 CX=0008 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1462 SS=1461 CS=1464 IP=0023 NV UP EI PL NZ NA PO NC
1464:0023 26 ES:
1464:0024 8A07 MOV AL,[BX] ES:0000=01
-t
AX=1401 BX=0000 CX=0008 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1462 SS=1461 CS=1464 IP=0026 NV UP EI PL NZ NA PO NC
1464:0026 0007 ADD [BX],AL DS:0000=01
-t
AX=1401 BX=0000 CX=0008 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1462 SS=1461 CS=1464 IP=0028 NV UP EI PL NZ NA PO NC
1464:0028 43 INC BX
-t
AX=1401 BX=0001 CX=0008 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1462 SS=1461 CS=1464 IP=0029 NV UP EI PL NZ NA PO NC
1464:0029 E2F8 LOOP 0023
-p
AX=1408 BX=0008 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1462 SS=1461 CS=1464 IP=002B NV UP EI PL NZ NA PO NC
1464:002B B8004C MOV AX,4C00
-t
AX=4C00 BX=0008 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1463 ES=1462 SS=1461 CS=1464 IP=002E NV UP EI PL NZ NA PO NC
1464:002E CD21 INT 21
-p
Program terminated normally
查看结果:
-d ds:0 7
1463:0000 02 04 06 08 0A 0C 0E 10 ........
附上另一种做法:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov es,ax
mov ax,c
mov ds,ax
mov bx,0
mov cx,4
s1: mov ax,es:[bx]
add [bx],ax
add bx,2
loop s1
mov ax,b
mov es,ax
mov bx,0
mov cx,4
s2: mov ax,es:[bx]
add [bx],ax
add bx,2
loop s2
mov ax,4c00h
int 21h
code ends
end start
结果:
-d ds:0 7
1463:0000 02 04 06 08 0A 0C 0E 10 ........
- [fpamc] 谢谢老师,拿走咯! 03/04 10:05
- [clicklonely] 谢谢朋友。 12/05 21:34
- [flyincold] 收藏,收藏,说是语法错误容易检查,才怪呢!有这个就好办多了 05/25 12:24
- [whos] 呵呵,大概六年前就看过这篇文章,当时接触黑客没多久,特别兴奋,里面几乎每个字都重复看了N遍。看这篇文 05/11 20:21
- [zxn0304] 呵呵...谢谢... 05/11 16:37
- [游客] 不错,谢谢了.对我这样英语不好的人还是很有用的. 05/11 10:55
- [wengshao] 谢谢~~~ 04/28 23:20
- [crazyman] up! 04/24 16:35
- [游客] 编译的时候可以进行对照参考。不错。 04/01 14:55
- [游客] 两种方法,不错! 04/01 14:33
[ 游客 发表于 2009-04-01 14:33 ]
两种方法,不错!