进来看看这段程序?

waiyan 2004-04-14 09:20:04
这个是PCX图象显示程序,烧写在ROM里面的,图片数据附带在程序里面
谁能稍微注解下?

call loc_4
retn
seg000:0004
seg000:0004 loc_4:
seg000:0000
seg000:0004 push ds
seg000:0005 push es
seg000:0006 mov si, 185h
seg000:0009 call sub_12
seg000:000C call sub_2B
seg000:000F pop es
seg000:0010 pop ds
seg000:0011 retn
seg000:0011 loc_4 endp
seg000:0011
seg000:0012
seg000:0012
seg000:0012
seg000:0012 sub_12 proc near
seg000:0012 pusha
seg000:0013 mov di, [si]
seg000:0015 add di, si
seg000:0017 sub di, 2FEh
seg000:001B mov cx, 300h
seg000:001E jmp short loc_25
seg000:0020
seg000:0020 loc_20:
seg000:0020 shr byte ptr [di], 2
seg000:0023 inc di
seg000:0024 dec cx
seg000:0025
seg000:0025 loc_25:
seg000:0025 or cx, cx
seg000:0027 jnz loc_20
seg000:0029 popa
seg000:002A retn
seg000:002A sub_12 endp
seg000:002A
seg000:002B
seg000:002B
seg000:002B
seg000:002B sub_2B proc near
seg000:002B push es
seg000:002C pusha
seg000:002D mov di, [si]
seg000:002F add di, si
seg000:0031 sub di, 2FEh
seg000:0035 add si, 82h ; '?
seg000:0039 push si
seg000:003A push di
seg000:003B mov ax, 13h
seg000:003E int 10h
seg000:0040
seg000:0040 loc_40:
seg000:0040 mov ax, 0A000h
seg000:0043 mov es, ax
seg000:0045 assume es:nothing
seg000:0045 pop si
seg000:0046 mov dx, si
seg000:0048 call sub_75
seg000:004B pop si
seg000:004C xor di, di
seg000:004E cld
seg000:004F jmp short loc_68
seg000:0051
seg000:0051 loc_51:
seg000:0051 lodsb
seg000:0052 mov ah, al
seg000:0054 and ah, 0C0h
seg000:0057 cmp ah, 0C0h
seg000:005A jnz loc_67
seg000:005C movzx cx, al
seg000:005F and cl, 3Fh
seg000:0062 lodsb
seg000:0063 rep stosb
seg000:0065 jmp short loc_68
seg000:0067
seg000:0067 loc_67:
seg000:0067 stosb
seg000:0068
seg000:0068 loc_68:
seg000:0068
seg000:0068 cmp di, 0FA00h
seg000:006C jnb loc_72
seg000:006E cmp si, dx
seg000:0070 jb loc_51
seg000:0072
seg000:0072 loc_72:
seg000:0072 popa
seg000:0073 pop es
seg000:0074 assume es:nothing
seg000:0074 retn
seg000:0074 sub_2B endp
seg000:0074
seg000:0075
seg000:0075
seg000:0075
seg000:0075 sub_75 proc near
seg000:0075 pusha
seg000:0076 cld
seg000:0077 mov cx, 300h
seg000:007A mov dx, 3C8h
seg000:007D mov al, 0
seg000:007F out dx, al
seg000:0080 inc dx
seg000:0081 rep outsb
seg000:0083 popa
seg000:0084 retn
seg000:0084 sub_75 endp
seg000:0084
seg000:0084
seg000:0085 db 43h ; C
seg000:0086 db 40h ; @
seg000:0086 seg000 ends
seg000:0086
seg000:0086
seg000:0086 end
...全文
26 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧