题目:将一个全是字母的字符串转化为大写(用栈来传递) 源码: assume cs:codesg datasg segment db 'conversation' datasg ends stacksg segment db 16 dup(0) stacksg ends codesg segment start: mov ax,datasg mov ds,ax mov ax,stacksg mov ss,ax mov sp,10h mov si,0 mov cx,12 s: push ds:[si] call a mov ds:[si],al inc si loop s mov ax,4c00h int 21h a: mov bp,sp mov al,[bp+2] and al,11011111b ret codesg ends end start 调试过程: -r AX=0000 BX=0000 CX=004A DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B75 ES=0B75 SS=0B85 CS=0B87 IP=0000 NV UP EI PL NZ NA PO NC 0B87:0000 B8850B MOV AX,0B85 -u 0B87:0000 B8850B MOV AX,0B85 0B87:0003 8ED8 MOV DS,AX 0B87:0005 B8860B MOV AX,0B86 0B87:0008 8ED0 MOV SS,AX 0B87:000A BC1000 MOV SP,0010 0B87:000D BE0000 MOV SI,0000 0B87:0010 B90C00 MOV CX,000C 0B87:0013 FF34 PUSH [SI] 0B87:0015 E80A00 CALL 0022 0B87:0018 8804 MOV [SI],AL 0B87:001A 46 INC SI 0B87:001B E2F6 LOOP 0013 0B87:001D B8004C MOV AX,4C00 -t AX=0B85 BX=0000 CX=004A DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B75 ES=0B75 SS=0B85 CS=0B87 IP=0003 NV UP EI PL NZ NA PO NC 0B87:0003 8ED8 MOV DS,AX -t AX=0B85 BX=0000 CX=004A DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B85 CS=0B87 IP=0005 NV UP EI PL NZ NA PO NC 0B87:0005 B8860B MOV AX,0B86 -t AX=0B86 BX=0000 CX=004A DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B85 CS=0B87 IP=0008 NV UP EI PL NZ NA PO NC 0B87:0008 8ED0 MOV SS,AX -t AX=0B86 BX=0000 CX=004A DX=0000 SP=0010 BP=0000 SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=000D NV UP EI PL NZ NA PO NC 0B87:000D BE0000 MOV SI,0000 -t AX=0B86 BX=0000 CX=004A DX=0000 SP=0010 BP=0000 SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0010 NV UP EI PL NZ NA PO NC 0B87:0010 B90C00 MOV CX,000C -t AX=0B86 BX=0000 CX=000C DX=0000 SP=0010 BP=0000 SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0013 NV UP EI PL NZ NA PO NC 0B87:0013 FF34 PUSH [SI] DS:0000=6F63 -t AX=0B86 BX=0000 CX=000C DX=0000 SP=000E BP=0000 SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0015 NV UP EI PL NZ NA PO NC 0B87:0015 E80A00 CALL 0022 -t AX=0B86 BX=0000 CX=000C DX=0000 SP=000C BP=0000 SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0022 NV UP EI PL NZ NA PO NC 0B87:0022 8BEC MOV BP,SP -t AX=0B86 BX=0000 CX=000C DX=0000 SP=000C BP=000C SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0024 NV UP EI PL NZ NA PO NC 0B87:0024 8A4602 MOV AL,[BP+02] SS:000E=63 -t AX=0B63 BX=0000 CX=000C DX=0000 SP=000C BP=000C SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0027 NV UP EI PL NZ NA PO NC 0B87:0027 24DF AND AL,DF -t AX=0B43 BX=0000 CX=000C DX=0000 SP=000C BP=000C SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0029 NV UP EI PL NZ NA PO NC 0B87:0029 C3 RET -t AX=0B43 BX=0000 CX=000C DX=0000 SP=000E BP=000C SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0018 NV UP EI PL NZ NA PO NC 0B87:0018 8804 MOV [SI],AL DS:0000=63 -t AX=0B43 BX=0000 CX=000C DX=0000 SP=000E BP=000C SI=0000 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=001A NV UP EI PL NZ NA PO NC 0B87:001A 46 INC SI -t AX=0B43 BX=0000 CX=000C DX=0000 SP=000E BP=000C SI=0001 DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=001B NV UP EI PL NZ NA PO NC 0B87:001B E2F6 LOOP 0013 -p AX=0B4E BX=0000 CX=0000 DX=0000 SP=FFF8 BP=FFF6 SI=000C DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=001D NV UP EI PL NZ NA PE NC 0B87:001D B8004C MOV AX,4C00 -d ds:0 0B85:0000 43 4F 4E 56 45 52 53 41-54 49 4F 4E 00 00 00 00 CONVERSATION.... 0B85:0010 61 74 73 61 72 73 65 72-76 65 6E 76 6F 6E 63 6F atsarservenvonco 0B85:0020 B8 85 0B 8E D8 B8 86 0B-8E D0 BC 10 00 BE 00 00 ................ 0B85:0030 B9 0C 00 FF 34 E8 0A 00-88 04 46 E2 F6 B8 00 4C ....4.....F....L 0B85:0040 CD 21 8B EC 8A 46 02 24-DF C3 8A 00 88 86 70 FF .!...F.$......p. 0B85:0050 0A C0 74 28 C4 5E 06 26-83 7F 06 00 74 1E A1 A4 ..t(.^.&....t... 0B85:0060 07 39 86 72 FF 77 15 8A-86 70 FF 2A E4 50 B8 FD .9.r.w...p.*.P.. 0B85:0070 05 50 FF 36 24 21 E8 77-63 83 C4 06 FF 36 24 21 .P.6$!.wc....6$! -p AX=4C00 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=FFF6 SI=000C DI=0000 DS=0B85 ES=0B75 SS=0B86 CS=0B87 IP=0020 NV UP EI PL NZ NA PE NC 0B87:0020 CD21 INT 21 -p Program terminated normally -p