📄 lt530.lst
字号:
Microsoft (R) Macro Assembler Version 6.00 10/27/03 14:18:45
lt530.asm Page 1 - 1
;p123 lt530.asm
.MODEL SMALL
CHECKSUMD PROTO C,A1:word,A2:word
.STACK 256
0000 .DATA
= 000A COUNT EQU 10
0000 12 25 F0 A3 03 68 ARRAY DB 12H,25H,0F0H,0A3H,3,68H,71H,0CAH,0FFH,90H
71 CA FF 90
000A 00 RESULT DB ?
0000 .CODE
.STARTUP
0000 *@Startup:
0000 BA ---- R * mov dx, DGROUP
0003 8E DA * mov ds, dx
0005 8C D3 * mov bx, ss
0007 2B DA * sub bx, dx
0009 D1 E3 * shl bx, 001h
000B D1 E3 * shl bx, 001h
000D D1 E3 * shl bx, 001h
000F D1 E3 * shl bx, 001h
0011 FA * cli
0012 8E D2 * mov ss, dx
0014 03 E3 * add sp, bx
0016 FB * sti
INVOKE CHECKSUMD ,COUNT,OFFSET ARRAY
0017 B8 0000 R * mov ax, word ptr OFFSET ARRAY
001A 50 * push ax ;实参2入栈
001B B8 000A * mov ax, +0000Ah
001E 50 * push ax ;实参1入栈
001F E8 002D R * call CHECKSUMD
0022 83 C4 04 * add sp, 00004h ;主程序负责平衡堆栈
0025 A2 000A R MOV RESULT,AL
.EXIT 0
0028 B8 4C00 * mov ax, 04C00h
002B CD 21 * int 021h
;-------------------------------------------
002D CHECKSUMD PROC C USES BX CX, c1:word, a4:word
002D 55 * push bp
002E 8B EC * mov bp, sp ;起始代码,建立堆栈祯(堆栈框架)
0030 53 * push bx
0031 51 * push cx
0032 8B 5E 06 MOV BX,a4 ;a4=[bp+6],取偏移地址(看机器码)
0035 8B 4E 04 MOV CX,c1 ;c1=[bp+4],取数据个数
0038 32 C0 XOR AL,AL
003A 02 07 SUMD: ADD AL,[BX]
003C 43 INC BX
003D E2 FB LOOP SUMD
RET ;这里没有与其对应的机器码
003F 59 * pop cx ;结尾代码
0040 5B * pop bx
0041 5D * pop bp
0042 C3 * ret 00000h ;这里用RET 0返回
0043 CHECKSUMD ENDP
END
Microsoft (R) Macro Assembler Version 6.00 10/27/03 14:18:45
lt530.asm Symbols 2 - 1
Segments and Groups:
N a m e Size Length Align Combine Class
DGROUP . . . . . . . . . . . . . GROUP
_DATA . . . . . . . . . . . . . 16 Bit 000B Word Public 'DATA'
STACK . . . . . . . . . . . . . 16 Bit 0100 Para Stack 'STACK'
_TEXT . . . . . . . . . . . . . 16 Bit 0043 Word Public 'CODE'
Procedures, parameters and locals:
N a m e Type Value Attr
CHECKSUMD . . . . . . . . . . . P Near 002D _TEXT Length= 0016 Public C
c1 . . . . . . . . . . . . . . Word bp + 0004
a4 . . . . . . . . . . . . . . Word bp + 0006
SUMD . . . . . . . . . . . . . L Near 003A _TEXT
Symbols:
N a m e Type Value Attr
@CodeSize . . . . . . . . . . . Number 0000h
@DataSize . . . . . . . . . . . Number 0000h
@Interface . . . . . . . . . . . Number 0000h
@Model . . . . . . . . . . . . . Number 0002h
@Startup . . . . . . . . . . . . L Near 0000 _TEXT
@code . . . . . . . . . . . . . Text _TEXT
@data . . . . . . . . . . . . . Text DGROUP
@fardata? . . . . . . . . . . . Text FAR_BSS
@fardata . . . . . . . . . . . . Text FAR_DATA
@stack . . . . . . . . . . . . . Text DGROUP
ARRAY . . . . . . . . . . . . . Byte 0000 _DATA
COUNT . . . . . . . . . . . . . Number 000Ah
RESULT . . . . . . . . . . . . . Byte 000A _DATA
0 Warnings
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -