17 个解决方案
#1
char liu16S[]={
/* 以下是 '刘' 的 16点阵宋体 字模,32 byte */
0x10,0x04,0x08,0x04,0x04,0x04,0x7F,0xA4,
0x01,0x24,0x21,0x24,0x12,0x24,0x0A,0x24,
0x04,0x24,0x06,0x24,0x0A,0x24,0x11,0x04,
0x21,0x84,0x41,0x14,0x80,0x08,0x00,0x00,
};
/* 以下是 '刘' 的 16点阵宋体 字模,32 byte */
0x10,0x04,0x08,0x04,0x04,0x04,0x7F,0xA4,
0x01,0x24,0x21,0x24,0x12,0x24,0x0A,0x24,
0x04,0x24,0x06,0x24,0x0A,0x24,0x11,0x04,
0x21,0x84,0x41,0x14,0x80,0x08,0x00,0x00,
};
#2
对于使用少量的汉字图形程序,完全没有必要带巨大的汉字库来运行,
只要内存允许,你可以把汉字字模直接定义为数组的信息存储在EXE文
件里。通过这个工具,你可以把单个字模信息直接取出来,然后在源代
码中粘贴。该工具的强大在于不仅可以生成12×12、16×16宋体这些
存在于DOS字库的字模,而且可以生成16×16楷体、黑体甚至自定义字
体的字模,而且可以提供6种字模大小供您选择并即时预览效果!对使
用少量汉字的图形编程能够提供极大方便。
以下是其输出函数的代码:
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
n=(matsize-1)/8+1;
for(j=0;j<matsize;j++)
for(i=0;i<n;i++)
for(k=0;k<8;k++)
if(mat[j*n+i]&(0x80>>k)) /*测试为1的位则显示*/
putpixel(x+i*8+k,y+j,color);
}
只要内存允许,你可以把汉字字模直接定义为数组的信息存储在EXE文
件里。通过这个工具,你可以把单个字模信息直接取出来,然后在源代
码中粘贴。该工具的强大在于不仅可以生成12×12、16×16宋体这些
存在于DOS字库的字模,而且可以生成16×16楷体、黑体甚至自定义字
体的字模,而且可以提供6种字模大小供您选择并即时预览效果!对使
用少量汉字的图形编程能够提供极大方便。
以下是其输出函数的代码:
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
n=(matsize-1)/8+1;
for(j=0;j<matsize;j++)
for(i=0;i<n;i++)
for(k=0;k<8;k++)
if(mat[j*n+i]&(0x80>>k)) /*测试为1的位则显示*/
putpixel(x+i*8+k,y+j,color);
}
#3
超时了
#4
什么是点阵字体?
什么是字模?
什么是字模?
#5
4*4
#6
超时!我也姓刘,顶一个。 能移动的‘刘’字
把下面虚线内数据保存为Liu.bat,直接双击即可运行。
--------------------
Goto Liu
E100 0E 1F B8 12 00 CD 10 FC B8 00 A0 8E C0 31 FF 89
E110 FD BE 90 01 B9 10 00 E8 2E 00 A4 A4 83 C7 4E E2
E120 F9 B4 00 CD 16 3C 0D 74 16 89 EF B9 10 00 26 C7
E130 05 00 00 83 C7 50 E2 F6 89 EF 83 C7 50 EB D0 B8
E140 03 00 CD 10 B4 4C CD 21 B4 02 B7 00 BA 20 10 CD
E150 10 B3 24 89 FA 88 F7 E8 0E 00 88 D7 E8 09 00 C3
E160 00 00 00 00 00 00 00 00 88 F8 D0 E8 D0 E8 D0 E8
E170 D0 E8 0C 30 3C 39 76 02 04 07 B4 0E CD 10 88 F8
E180 24 0F 0C 30 3C 39 76 02 04 07 B4 0E CD 10 C3 00
E190 20 04 18 04 09 24 FF A4 02 24 42 24 22 24 14 24
E1A0 14 24 08 24 08 24 14 24 22 04 43 04 81 14 00 08
E1B0 10 00 10 20 10 40 10 84 FD FE 11 04 31 04 39 04
E1C0 55 04 51 FC 91 04 11 04 11 04 11 04 11 FC 11 04
E1D0 00 20 00 F0 0F 00 08 00 08 00 08 10 0F F8 08 40
E1E0 00 00 00 00 FF FE 00 00 04 40 0C 30 10 18 20 08
E1F0 5B 31 66 66 2D 32 35 65 5D 6C 62 62 2E 64 6F 74
g=100
q
:Liu
Debug<Liu.bat
--------------------
程序在屏幕左上角写一“刘”字,屏幕中部显示“刘”的位置,
是写屏时的ES:DI值。回车键结束程序,长按其它键,“刘”字逐行
下移。
把下面虚线内数据保存为Liu.bat,直接双击即可运行。
--------------------
Goto Liu
E100 0E 1F B8 12 00 CD 10 FC B8 00 A0 8E C0 31 FF 89
E110 FD BE 90 01 B9 10 00 E8 2E 00 A4 A4 83 C7 4E E2
E120 F9 B4 00 CD 16 3C 0D 74 16 89 EF B9 10 00 26 C7
E130 05 00 00 83 C7 50 E2 F6 89 EF 83 C7 50 EB D0 B8
E140 03 00 CD 10 B4 4C CD 21 B4 02 B7 00 BA 20 10 CD
E150 10 B3 24 89 FA 88 F7 E8 0E 00 88 D7 E8 09 00 C3
E160 00 00 00 00 00 00 00 00 88 F8 D0 E8 D0 E8 D0 E8
E170 D0 E8 0C 30 3C 39 76 02 04 07 B4 0E CD 10 88 F8
E180 24 0F 0C 30 3C 39 76 02 04 07 B4 0E CD 10 C3 00
E190 20 04 18 04 09 24 FF A4 02 24 42 24 22 24 14 24
E1A0 14 24 08 24 08 24 14 24 22 04 43 04 81 14 00 08
E1B0 10 00 10 20 10 40 10 84 FD FE 11 04 31 04 39 04
E1C0 55 04 51 FC 91 04 11 04 11 04 11 04 11 FC 11 04
E1D0 00 20 00 F0 0F 00 08 00 08 00 08 10 0F F8 08 40
E1E0 00 00 00 00 FF FE 00 00 04 40 0C 30 10 18 20 08
E1F0 5B 31 66 66 2D 32 35 65 5D 6C 62 62 2E 64 6F 74
g=100
q
:Liu
Debug<Liu.bat
--------------------
程序在屏幕左上角写一“刘”字,屏幕中部显示“刘”的位置,
是写屏时的ES:DI值。回车键结束程序,长按其它键,“刘”字逐行
下移。
#7
大侠啊,请问这个是怎么得来的?
谢谢先
谢谢先
#8
再顶一个。 能变色的‘刘’字
把下面虚线内数据保存为CaiLiu.bat,直接双击即可运行。
----------------------------------
Goto CaiLiu
e100 EB 1E 00 00 00 00 00 00 5C 48 5A 4B 31 36 00 6E
e110 6F 74 20 66 6F 75 6E 64 21 07 0D 0A 24 00 00 00
e120 0E 1F B4 0F CD 10 B4 00 A3 C0 00 B8 12 00 CD 10
e130 B4 0B BB 01 01 CD 10 BB 00 00 CD 10 E8 79 00 BE
e140 FF 01 BF 10 00 B9 02 00 51 8A 1C B9 08 00 51 D0
e150 E3 72 04 B0 00 EB 02 B0 01 89 E9 B4 0C CD 10 45
e160 59 E2 EB 46 59 E2 E1 4F 90 74 06 42 83 ED 10 EB
e170 D4 B4 00 CD 16 3C 0D 75 09 A1 C0 00 CD 10 B4 4C
e180 CD 21 A0 58 01 FE C0 3C FF 74 EE A2 58 01 88 C3
e190 B1 04 D2 E8 0C 30 3C 39 76 02 04 07 B4 0E CD 10
e1A0 88 D8 24 0F 0C 30 3C 39 76 02 04 07 B4 0E CD 10
e1B0 EB 8A 00 00 00 00 00 00 B4 03 CD 10 B3 08 88 D0
e1C0 F6 E3 89 C5 88 F0 B3 10 F6 E3 89 C2 C3 00 00 00
e1D0 00 00 02 40 02 40 02 40 02 40 02 40 02 40 02 40
e1E0 02 40 02 40 02 40 02 40 02 40 02 40 02 40 00 00
e1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20
e200 04 18 04 09 24 FF A4 02 24 42 24 22 24 14 24 14
e210 24 08 24 08 24 14 24 22 04 43 04 81 14 00 08 10
e220 00 10 20 10 40 10 84 FD FE 11 04 31 04 39 04 55
e230 04 51 FC 91 04 11 04 11 04 11 04 11 FC 11 04 00
e240 20 00 F0 0F 00 08 00 08 00 08 10 0F F8 08 40 08
e250 40 08 44 FF FE 00 00 04 40 0C 30 10 18 20 08 1A
e260 5B 31 66 66 2D 32 35 65 20 69 73 20 6C 62 62 2E
e270 64 6F 74 2E 5D 00 21 C7 00 00 00 00 00 00 00 00
g=100
q
:CaiLiu
Debug <CaiLiu.bat
----------------------------------
程序在屏幕左上角写一“刘”字,前面是当前彩色代码号。
回车键结束程序,长按其它键,“刘”字逐字后移。
把下面虚线内数据保存为CaiLiu.bat,直接双击即可运行。
----------------------------------
Goto CaiLiu
e100 EB 1E 00 00 00 00 00 00 5C 48 5A 4B 31 36 00 6E
e110 6F 74 20 66 6F 75 6E 64 21 07 0D 0A 24 00 00 00
e120 0E 1F B4 0F CD 10 B4 00 A3 C0 00 B8 12 00 CD 10
e130 B4 0B BB 01 01 CD 10 BB 00 00 CD 10 E8 79 00 BE
e140 FF 01 BF 10 00 B9 02 00 51 8A 1C B9 08 00 51 D0
e150 E3 72 04 B0 00 EB 02 B0 01 89 E9 B4 0C CD 10 45
e160 59 E2 EB 46 59 E2 E1 4F 90 74 06 42 83 ED 10 EB
e170 D4 B4 00 CD 16 3C 0D 75 09 A1 C0 00 CD 10 B4 4C
e180 CD 21 A0 58 01 FE C0 3C FF 74 EE A2 58 01 88 C3
e190 B1 04 D2 E8 0C 30 3C 39 76 02 04 07 B4 0E CD 10
e1A0 88 D8 24 0F 0C 30 3C 39 76 02 04 07 B4 0E CD 10
e1B0 EB 8A 00 00 00 00 00 00 B4 03 CD 10 B3 08 88 D0
e1C0 F6 E3 89 C5 88 F0 B3 10 F6 E3 89 C2 C3 00 00 00
e1D0 00 00 02 40 02 40 02 40 02 40 02 40 02 40 02 40
e1E0 02 40 02 40 02 40 02 40 02 40 02 40 02 40 00 00
e1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20
e200 04 18 04 09 24 FF A4 02 24 42 24 22 24 14 24 14
e210 24 08 24 08 24 14 24 22 04 43 04 81 14 00 08 10
e220 00 10 20 10 40 10 84 FD FE 11 04 31 04 39 04 55
e230 04 51 FC 91 04 11 04 11 04 11 04 11 FC 11 04 00
e240 20 00 F0 0F 00 08 00 08 00 08 10 0F F8 08 40 08
e250 40 08 44 FF FE 00 00 04 40 0C 30 10 18 20 08 1A
e260 5B 31 66 66 2D 32 35 65 20 69 73 20 6C 62 62 2E
e270 64 6F 74 2E 5D 00 21 C7 00 00 00 00 00 00 00 00
g=100
q
:CaiLiu
Debug <CaiLiu.bat
----------------------------------
程序在屏幕左上角写一“刘”字,前面是当前彩色代码号。
回车键结束程序,长按其它键,“刘”字逐字后移。
#9
大侠啊,请问这个是怎么得来的?
要是单单有您这个bat文件,我如何将“刘”改成“张三”,其他不变。就是一个字改成2个字。
谢谢先
要是单单有您这个bat文件,我如何将“刘”改成“张三”,其他不变。就是一个字改成2个字。
谢谢先
#10
start proc near
jmp short loc_10120
; ---------------------------------------------------------------------------
align 8
aHzk16 db '\HZK16',0
aNotFound db 'not found!',7,0Dh,0Ah
db '$',0
align 4
loc_10120: ; CODE XREF: startj
push cs
pop ds
mov ah, 0Fh
int 10h ; - VIDEO - GET CURRENT VIDEO MODE
; Return: AH = number of columns on screen
; AL = current video mode
; BH = current active display page
mov ah, 0
mov ds:0C0h, ax
mov ax, 12h
int 10h ; - VIDEO - SET VIDEO MODE
; AL = mode
mov ah, 0Bh
mov bx, 101h
int 10h ; - VIDEO - SET COLOR PALETTE
; BH = 00h, BL = border color
; BH = 01h, BL = palette (0-3)
mov bx, 0
int 10h ; - VIDEO - SET COLOR PALETTE
; BH = 00h, BL = border color
; BH = 01h, BL = palette (0-3)
loc_1013C: ; CODE XREF: start+B0j
call Show
mov si, 1FFh
mov di, 10h
loc_10145: ; CODE XREF: start+6Fj
mov cx, 2
loc_10148: ; CODE XREF: start+65j
push cx
mov bl, [si]
mov cx, 8
loc_1014E: ; CODE XREF: start+61j
push cx
shl bl, 1
jb short loc_10157
mov al, 0
jmp short loc_10159
; ---------------------------------------------------------------------------
loc_10157: ; CODE XREF: start+51j
; DATA XREF: start:loc_10182r ...
mov al, 1
loc_10159: ; CODE XREF: start+55j
mov cx, bp
mov ah, 0Ch
int 10h ; - VIDEO - WRITE DOT ON SCREEN
; AL = color of dot, BH = display page
; CX = column, DX = row
inc bp
pop cx
loop loc_1014E
inc si
pop cx
loop loc_10148
dec di
nop
jz short loc_10171
inc dx
sub bp, 10h
jmp short loc_10145
; ---------------------------------------------------------------------------
loc_10171: ; CODE XREF: start+69j
mov ah, 0
int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY
; Return: AH = scan code, AL = character
cmp al, 0Dh
jnz short loc_10182
loc_10179: ; CODE XREF: start+89j
mov ax, ds:0C0h
int 10h ; - VIDEO -
mov ah, 4Ch
int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
; AL = exit code
; ---------------------------------------------------------------------------
loc_10182: ; CODE XREF: start+77j
mov al, byte ptr loc_10157+1
inc al
cmp al, 0FFh
jz short loc_10179
mov byte ptr loc_10157+1, al
mov bl, al
mov cl, 4
shr al, cl
or al, 30h
cmp al, 39h
jbe short loc_1019C
add al, 7
loc_1019C: ; CODE XREF: start+98j
mov ah, 0Eh
int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
; AL = character, BH = display page (alpha modes)
; BL = foreground color (graphics modes)
mov al, bl
and al, 0Fh
or al, 30h
cmp al, 39h
jbe short loc_101AC
add al, 7
loc_101AC: ; CODE XREF: start+A8j
mov ah, 0Eh
int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
; AL = character, BH = display page (alpha modes)
; BL = foreground color (graphics modes)
jmp short loc_1013C
start endp
; ---------------------------------------------------------------------------
align 8
; =============== S U B R O U T I N E =======================================
Show proc near ; CODE XREF: start:loc_1013Cp
mov ah, 3
int 10h ; - VIDEO - READ CURSOR POSITION
; BH = page number
; Return: DH,DL = row,column, CH = cursor start line, CL = cursor end line
mov bl, 8
mov al, dl
mul bl
mov bp, ax
mov al, dh
mov bl, 10h
mul bl
mov dx, ax
retn
Show endp
jmp short loc_10120
; ---------------------------------------------------------------------------
align 8
aHzk16 db '\HZK16',0
aNotFound db 'not found!',7,0Dh,0Ah
db '$',0
align 4
loc_10120: ; CODE XREF: startj
push cs
pop ds
mov ah, 0Fh
int 10h ; - VIDEO - GET CURRENT VIDEO MODE
; Return: AH = number of columns on screen
; AL = current video mode
; BH = current active display page
mov ah, 0
mov ds:0C0h, ax
mov ax, 12h
int 10h ; - VIDEO - SET VIDEO MODE
; AL = mode
mov ah, 0Bh
mov bx, 101h
int 10h ; - VIDEO - SET COLOR PALETTE
; BH = 00h, BL = border color
; BH = 01h, BL = palette (0-3)
mov bx, 0
int 10h ; - VIDEO - SET COLOR PALETTE
; BH = 00h, BL = border color
; BH = 01h, BL = palette (0-3)
loc_1013C: ; CODE XREF: start+B0j
call Show
mov si, 1FFh
mov di, 10h
loc_10145: ; CODE XREF: start+6Fj
mov cx, 2
loc_10148: ; CODE XREF: start+65j
push cx
mov bl, [si]
mov cx, 8
loc_1014E: ; CODE XREF: start+61j
push cx
shl bl, 1
jb short loc_10157
mov al, 0
jmp short loc_10159
; ---------------------------------------------------------------------------
loc_10157: ; CODE XREF: start+51j
; DATA XREF: start:loc_10182r ...
mov al, 1
loc_10159: ; CODE XREF: start+55j
mov cx, bp
mov ah, 0Ch
int 10h ; - VIDEO - WRITE DOT ON SCREEN
; AL = color of dot, BH = display page
; CX = column, DX = row
inc bp
pop cx
loop loc_1014E
inc si
pop cx
loop loc_10148
dec di
nop
jz short loc_10171
inc dx
sub bp, 10h
jmp short loc_10145
; ---------------------------------------------------------------------------
loc_10171: ; CODE XREF: start+69j
mov ah, 0
int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY
; Return: AH = scan code, AL = character
cmp al, 0Dh
jnz short loc_10182
loc_10179: ; CODE XREF: start+89j
mov ax, ds:0C0h
int 10h ; - VIDEO -
mov ah, 4Ch
int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
; AL = exit code
; ---------------------------------------------------------------------------
loc_10182: ; CODE XREF: start+77j
mov al, byte ptr loc_10157+1
inc al
cmp al, 0FFh
jz short loc_10179
mov byte ptr loc_10157+1, al
mov bl, al
mov cl, 4
shr al, cl
or al, 30h
cmp al, 39h
jbe short loc_1019C
add al, 7
loc_1019C: ; CODE XREF: start+98j
mov ah, 0Eh
int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
; AL = character, BH = display page (alpha modes)
; BL = foreground color (graphics modes)
mov al, bl
and al, 0Fh
or al, 30h
cmp al, 39h
jbe short loc_101AC
add al, 7
loc_101AC: ; CODE XREF: start+A8j
mov ah, 0Eh
int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
; AL = character, BH = display page (alpha modes)
; BL = foreground color (graphics modes)
jmp short loc_1013C
start endp
; ---------------------------------------------------------------------------
align 8
; =============== S U B R O U T I N E =======================================
Show proc near ; CODE XREF: start:loc_1013Cp
mov ah, 3
int 10h ; - VIDEO - READ CURSOR POSITION
; BH = page number
; Return: DH,DL = row,column, CH = cursor start line, CL = cursor end line
mov bl, 8
mov al, dl
mul bl
mov bp, ax
mov al, dh
mov bl, 10h
mul bl
mov dx, ax
retn
Show endp
#11
data db 5 dup(0),2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,2,40h
db 2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,11h dup(0)
lbb_dot db 9,0,0FDh,8,9,8,9,10h,9,20h,79h,40h,41h,4,47h
db 0FEh,41h,40h,79h,40h,9,20h,9,20h,9,10h,9,4Eh,51h,84h
db 21h,0,10h,0,10h,20h,10h,40h,10h,84h,0FDh,0FEh,11h,4,31h
db 4,39h,4,55h,4,51h,0FCh,91h,4,11h,4,11h,4,11h,4
db 11h,0FCh,11h,4,0,20h,0,0F0h,0Fh,0,8,0,8,0,8
db 10h,0Fh,0F8h,8,40h,8,40h,8,44h,0FFh,0FEh,2 dup(0),4,40h,0Ch
db 30h,10h,18h,20h,8
db 1Ah
a1ff25eIsLbb_do db '[1ff-25e is lbb.dot.]',0
dw 0C721h
db 2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,11h dup(0)
lbb_dot db 9,0,0FDh,8,9,8,9,10h,9,20h,79h,40h,41h,4,47h
db 0FEh,41h,40h,79h,40h,9,20h,9,20h,9,10h,9,4Eh,51h,84h
db 21h,0,10h,0,10h,20h,10h,40h,10h,84h,0FDh,0FEh,11h,4,31h
db 4,39h,4,55h,4,51h,0FCh,91h,4,11h,4,11h,4,11h,4
db 11h,0FCh,11h,4,0,20h,0,0F0h,0Fh,0,8,0,8,0,8
db 10h,0Fh,0F8h,8,40h,8,40h,8,44h,0FFh,0FEh,2 dup(0),4,40h,0Ch
db 30h,10h,18h,20h,8
db 1Ah
a1ff25eIsLbb_do db '[1ff-25e is lbb.dot.]',0
dw 0C721h
#12
mov si, 1FFh ;硬编码
#13
楼上的太N了。。。
不懂是啥。。。
得学习
给解释解释下。。。。
不懂是啥。。。
得学习
给解释解释下。。。。
#14
这里很少有人用IDA吗?
DEBUG是多年之前的编程调试工具了,别故弄玄虚让大家看不懂哦。
DEBUG是多年之前的编程调试工具了,别故弄玄虚让大家看不懂哦。
#15
回复 zhpbeyond 用DEBUG不是故弄玄虚,原因如下:
①.大家都不欢看长贴,程序以BAT形式发来,长度最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如: les ax,sp。
④.用DEBUG,写的程序也是最短的。你可试写这题:
汇编用递归实现汉诺伊塔(汉诺伊塔盘数1-9个)。
要求:1.从键盘接收盘数,屏显移盘步骤。
2.编译后的代码长度限制在90H以内。
①.大家都不欢看长贴,程序以BAT形式发来,长度最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如: les ax,sp。
④.用DEBUG,写的程序也是最短的。你可试写这题:
汇编用递归实现汉诺伊塔(汉诺伊塔盘数1-9个)。
要求:1.从键盘接收盘数,屏显移盘步骤。
2.编译后的代码长度限制在90H以内。
#16
①.大家都不欢看长贴,程序以BAT形式发来,长度最短。
这点不成立,不发帖最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如:les ax,sp。
可以局部用db定义,没必要全部都是hex
④.用DEBUG,写的程序也是最短的。
这个取决于编译模式,汇编也可以做com文件的.
这点不成立,不发帖最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如:les ax,sp。
可以局部用db定义,没必要全部都是hex
④.用DEBUG,写的程序也是最短的。
这个取决于编译模式,汇编也可以做com文件的.
#17
姓刘的果然够牛!学习了!
#1
char liu16S[]={
/* 以下是 '刘' 的 16点阵宋体 字模,32 byte */
0x10,0x04,0x08,0x04,0x04,0x04,0x7F,0xA4,
0x01,0x24,0x21,0x24,0x12,0x24,0x0A,0x24,
0x04,0x24,0x06,0x24,0x0A,0x24,0x11,0x04,
0x21,0x84,0x41,0x14,0x80,0x08,0x00,0x00,
};
/* 以下是 '刘' 的 16点阵宋体 字模,32 byte */
0x10,0x04,0x08,0x04,0x04,0x04,0x7F,0xA4,
0x01,0x24,0x21,0x24,0x12,0x24,0x0A,0x24,
0x04,0x24,0x06,0x24,0x0A,0x24,0x11,0x04,
0x21,0x84,0x41,0x14,0x80,0x08,0x00,0x00,
};
#2
对于使用少量的汉字图形程序,完全没有必要带巨大的汉字库来运行,
只要内存允许,你可以把汉字字模直接定义为数组的信息存储在EXE文
件里。通过这个工具,你可以把单个字模信息直接取出来,然后在源代
码中粘贴。该工具的强大在于不仅可以生成12×12、16×16宋体这些
存在于DOS字库的字模,而且可以生成16×16楷体、黑体甚至自定义字
体的字模,而且可以提供6种字模大小供您选择并即时预览效果!对使
用少量汉字的图形编程能够提供极大方便。
以下是其输出函数的代码:
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
n=(matsize-1)/8+1;
for(j=0;j<matsize;j++)
for(i=0;i<n;i++)
for(k=0;k<8;k++)
if(mat[j*n+i]&(0x80>>k)) /*测试为1的位则显示*/
putpixel(x+i*8+k,y+j,color);
}
只要内存允许,你可以把汉字字模直接定义为数组的信息存储在EXE文
件里。通过这个工具,你可以把单个字模信息直接取出来,然后在源代
码中粘贴。该工具的强大在于不仅可以生成12×12、16×16宋体这些
存在于DOS字库的字模,而且可以生成16×16楷体、黑体甚至自定义字
体的字模,而且可以提供6种字模大小供您选择并即时预览效果!对使
用少量汉字的图形编程能够提供极大方便。
以下是其输出函数的代码:
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{int i,j,k,n;
n=(matsize-1)/8+1;
for(j=0;j<matsize;j++)
for(i=0;i<n;i++)
for(k=0;k<8;k++)
if(mat[j*n+i]&(0x80>>k)) /*测试为1的位则显示*/
putpixel(x+i*8+k,y+j,color);
}
#3
超时了
#4
什么是点阵字体?
什么是字模?
什么是字模?
#5
4*4
#6
超时!我也姓刘,顶一个。 能移动的‘刘’字
把下面虚线内数据保存为Liu.bat,直接双击即可运行。
--------------------
Goto Liu
E100 0E 1F B8 12 00 CD 10 FC B8 00 A0 8E C0 31 FF 89
E110 FD BE 90 01 B9 10 00 E8 2E 00 A4 A4 83 C7 4E E2
E120 F9 B4 00 CD 16 3C 0D 74 16 89 EF B9 10 00 26 C7
E130 05 00 00 83 C7 50 E2 F6 89 EF 83 C7 50 EB D0 B8
E140 03 00 CD 10 B4 4C CD 21 B4 02 B7 00 BA 20 10 CD
E150 10 B3 24 89 FA 88 F7 E8 0E 00 88 D7 E8 09 00 C3
E160 00 00 00 00 00 00 00 00 88 F8 D0 E8 D0 E8 D0 E8
E170 D0 E8 0C 30 3C 39 76 02 04 07 B4 0E CD 10 88 F8
E180 24 0F 0C 30 3C 39 76 02 04 07 B4 0E CD 10 C3 00
E190 20 04 18 04 09 24 FF A4 02 24 42 24 22 24 14 24
E1A0 14 24 08 24 08 24 14 24 22 04 43 04 81 14 00 08
E1B0 10 00 10 20 10 40 10 84 FD FE 11 04 31 04 39 04
E1C0 55 04 51 FC 91 04 11 04 11 04 11 04 11 FC 11 04
E1D0 00 20 00 F0 0F 00 08 00 08 00 08 10 0F F8 08 40
E1E0 00 00 00 00 FF FE 00 00 04 40 0C 30 10 18 20 08
E1F0 5B 31 66 66 2D 32 35 65 5D 6C 62 62 2E 64 6F 74
g=100
q
:Liu
Debug<Liu.bat
--------------------
程序在屏幕左上角写一“刘”字,屏幕中部显示“刘”的位置,
是写屏时的ES:DI值。回车键结束程序,长按其它键,“刘”字逐行
下移。
把下面虚线内数据保存为Liu.bat,直接双击即可运行。
--------------------
Goto Liu
E100 0E 1F B8 12 00 CD 10 FC B8 00 A0 8E C0 31 FF 89
E110 FD BE 90 01 B9 10 00 E8 2E 00 A4 A4 83 C7 4E E2
E120 F9 B4 00 CD 16 3C 0D 74 16 89 EF B9 10 00 26 C7
E130 05 00 00 83 C7 50 E2 F6 89 EF 83 C7 50 EB D0 B8
E140 03 00 CD 10 B4 4C CD 21 B4 02 B7 00 BA 20 10 CD
E150 10 B3 24 89 FA 88 F7 E8 0E 00 88 D7 E8 09 00 C3
E160 00 00 00 00 00 00 00 00 88 F8 D0 E8 D0 E8 D0 E8
E170 D0 E8 0C 30 3C 39 76 02 04 07 B4 0E CD 10 88 F8
E180 24 0F 0C 30 3C 39 76 02 04 07 B4 0E CD 10 C3 00
E190 20 04 18 04 09 24 FF A4 02 24 42 24 22 24 14 24
E1A0 14 24 08 24 08 24 14 24 22 04 43 04 81 14 00 08
E1B0 10 00 10 20 10 40 10 84 FD FE 11 04 31 04 39 04
E1C0 55 04 51 FC 91 04 11 04 11 04 11 04 11 FC 11 04
E1D0 00 20 00 F0 0F 00 08 00 08 00 08 10 0F F8 08 40
E1E0 00 00 00 00 FF FE 00 00 04 40 0C 30 10 18 20 08
E1F0 5B 31 66 66 2D 32 35 65 5D 6C 62 62 2E 64 6F 74
g=100
q
:Liu
Debug<Liu.bat
--------------------
程序在屏幕左上角写一“刘”字,屏幕中部显示“刘”的位置,
是写屏时的ES:DI值。回车键结束程序,长按其它键,“刘”字逐行
下移。
#7
大侠啊,请问这个是怎么得来的?
谢谢先
谢谢先
#8
再顶一个。 能变色的‘刘’字
把下面虚线内数据保存为CaiLiu.bat,直接双击即可运行。
----------------------------------
Goto CaiLiu
e100 EB 1E 00 00 00 00 00 00 5C 48 5A 4B 31 36 00 6E
e110 6F 74 20 66 6F 75 6E 64 21 07 0D 0A 24 00 00 00
e120 0E 1F B4 0F CD 10 B4 00 A3 C0 00 B8 12 00 CD 10
e130 B4 0B BB 01 01 CD 10 BB 00 00 CD 10 E8 79 00 BE
e140 FF 01 BF 10 00 B9 02 00 51 8A 1C B9 08 00 51 D0
e150 E3 72 04 B0 00 EB 02 B0 01 89 E9 B4 0C CD 10 45
e160 59 E2 EB 46 59 E2 E1 4F 90 74 06 42 83 ED 10 EB
e170 D4 B4 00 CD 16 3C 0D 75 09 A1 C0 00 CD 10 B4 4C
e180 CD 21 A0 58 01 FE C0 3C FF 74 EE A2 58 01 88 C3
e190 B1 04 D2 E8 0C 30 3C 39 76 02 04 07 B4 0E CD 10
e1A0 88 D8 24 0F 0C 30 3C 39 76 02 04 07 B4 0E CD 10
e1B0 EB 8A 00 00 00 00 00 00 B4 03 CD 10 B3 08 88 D0
e1C0 F6 E3 89 C5 88 F0 B3 10 F6 E3 89 C2 C3 00 00 00
e1D0 00 00 02 40 02 40 02 40 02 40 02 40 02 40 02 40
e1E0 02 40 02 40 02 40 02 40 02 40 02 40 02 40 00 00
e1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20
e200 04 18 04 09 24 FF A4 02 24 42 24 22 24 14 24 14
e210 24 08 24 08 24 14 24 22 04 43 04 81 14 00 08 10
e220 00 10 20 10 40 10 84 FD FE 11 04 31 04 39 04 55
e230 04 51 FC 91 04 11 04 11 04 11 04 11 FC 11 04 00
e240 20 00 F0 0F 00 08 00 08 00 08 10 0F F8 08 40 08
e250 40 08 44 FF FE 00 00 04 40 0C 30 10 18 20 08 1A
e260 5B 31 66 66 2D 32 35 65 20 69 73 20 6C 62 62 2E
e270 64 6F 74 2E 5D 00 21 C7 00 00 00 00 00 00 00 00
g=100
q
:CaiLiu
Debug <CaiLiu.bat
----------------------------------
程序在屏幕左上角写一“刘”字,前面是当前彩色代码号。
回车键结束程序,长按其它键,“刘”字逐字后移。
把下面虚线内数据保存为CaiLiu.bat,直接双击即可运行。
----------------------------------
Goto CaiLiu
e100 EB 1E 00 00 00 00 00 00 5C 48 5A 4B 31 36 00 6E
e110 6F 74 20 66 6F 75 6E 64 21 07 0D 0A 24 00 00 00
e120 0E 1F B4 0F CD 10 B4 00 A3 C0 00 B8 12 00 CD 10
e130 B4 0B BB 01 01 CD 10 BB 00 00 CD 10 E8 79 00 BE
e140 FF 01 BF 10 00 B9 02 00 51 8A 1C B9 08 00 51 D0
e150 E3 72 04 B0 00 EB 02 B0 01 89 E9 B4 0C CD 10 45
e160 59 E2 EB 46 59 E2 E1 4F 90 74 06 42 83 ED 10 EB
e170 D4 B4 00 CD 16 3C 0D 75 09 A1 C0 00 CD 10 B4 4C
e180 CD 21 A0 58 01 FE C0 3C FF 74 EE A2 58 01 88 C3
e190 B1 04 D2 E8 0C 30 3C 39 76 02 04 07 B4 0E CD 10
e1A0 88 D8 24 0F 0C 30 3C 39 76 02 04 07 B4 0E CD 10
e1B0 EB 8A 00 00 00 00 00 00 B4 03 CD 10 B3 08 88 D0
e1C0 F6 E3 89 C5 88 F0 B3 10 F6 E3 89 C2 C3 00 00 00
e1D0 00 00 02 40 02 40 02 40 02 40 02 40 02 40 02 40
e1E0 02 40 02 40 02 40 02 40 02 40 02 40 02 40 00 00
e1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20
e200 04 18 04 09 24 FF A4 02 24 42 24 22 24 14 24 14
e210 24 08 24 08 24 14 24 22 04 43 04 81 14 00 08 10
e220 00 10 20 10 40 10 84 FD FE 11 04 31 04 39 04 55
e230 04 51 FC 91 04 11 04 11 04 11 04 11 FC 11 04 00
e240 20 00 F0 0F 00 08 00 08 00 08 10 0F F8 08 40 08
e250 40 08 44 FF FE 00 00 04 40 0C 30 10 18 20 08 1A
e260 5B 31 66 66 2D 32 35 65 20 69 73 20 6C 62 62 2E
e270 64 6F 74 2E 5D 00 21 C7 00 00 00 00 00 00 00 00
g=100
q
:CaiLiu
Debug <CaiLiu.bat
----------------------------------
程序在屏幕左上角写一“刘”字,前面是当前彩色代码号。
回车键结束程序,长按其它键,“刘”字逐字后移。
#9
大侠啊,请问这个是怎么得来的?
要是单单有您这个bat文件,我如何将“刘”改成“张三”,其他不变。就是一个字改成2个字。
谢谢先
要是单单有您这个bat文件,我如何将“刘”改成“张三”,其他不变。就是一个字改成2个字。
谢谢先
#10
start proc near
jmp short loc_10120
; ---------------------------------------------------------------------------
align 8
aHzk16 db '\HZK16',0
aNotFound db 'not found!',7,0Dh,0Ah
db '$',0
align 4
loc_10120: ; CODE XREF: startj
push cs
pop ds
mov ah, 0Fh
int 10h ; - VIDEO - GET CURRENT VIDEO MODE
; Return: AH = number of columns on screen
; AL = current video mode
; BH = current active display page
mov ah, 0
mov ds:0C0h, ax
mov ax, 12h
int 10h ; - VIDEO - SET VIDEO MODE
; AL = mode
mov ah, 0Bh
mov bx, 101h
int 10h ; - VIDEO - SET COLOR PALETTE
; BH = 00h, BL = border color
; BH = 01h, BL = palette (0-3)
mov bx, 0
int 10h ; - VIDEO - SET COLOR PALETTE
; BH = 00h, BL = border color
; BH = 01h, BL = palette (0-3)
loc_1013C: ; CODE XREF: start+B0j
call Show
mov si, 1FFh
mov di, 10h
loc_10145: ; CODE XREF: start+6Fj
mov cx, 2
loc_10148: ; CODE XREF: start+65j
push cx
mov bl, [si]
mov cx, 8
loc_1014E: ; CODE XREF: start+61j
push cx
shl bl, 1
jb short loc_10157
mov al, 0
jmp short loc_10159
; ---------------------------------------------------------------------------
loc_10157: ; CODE XREF: start+51j
; DATA XREF: start:loc_10182r ...
mov al, 1
loc_10159: ; CODE XREF: start+55j
mov cx, bp
mov ah, 0Ch
int 10h ; - VIDEO - WRITE DOT ON SCREEN
; AL = color of dot, BH = display page
; CX = column, DX = row
inc bp
pop cx
loop loc_1014E
inc si
pop cx
loop loc_10148
dec di
nop
jz short loc_10171
inc dx
sub bp, 10h
jmp short loc_10145
; ---------------------------------------------------------------------------
loc_10171: ; CODE XREF: start+69j
mov ah, 0
int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY
; Return: AH = scan code, AL = character
cmp al, 0Dh
jnz short loc_10182
loc_10179: ; CODE XREF: start+89j
mov ax, ds:0C0h
int 10h ; - VIDEO -
mov ah, 4Ch
int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
; AL = exit code
; ---------------------------------------------------------------------------
loc_10182: ; CODE XREF: start+77j
mov al, byte ptr loc_10157+1
inc al
cmp al, 0FFh
jz short loc_10179
mov byte ptr loc_10157+1, al
mov bl, al
mov cl, 4
shr al, cl
or al, 30h
cmp al, 39h
jbe short loc_1019C
add al, 7
loc_1019C: ; CODE XREF: start+98j
mov ah, 0Eh
int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
; AL = character, BH = display page (alpha modes)
; BL = foreground color (graphics modes)
mov al, bl
and al, 0Fh
or al, 30h
cmp al, 39h
jbe short loc_101AC
add al, 7
loc_101AC: ; CODE XREF: start+A8j
mov ah, 0Eh
int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
; AL = character, BH = display page (alpha modes)
; BL = foreground color (graphics modes)
jmp short loc_1013C
start endp
; ---------------------------------------------------------------------------
align 8
; =============== S U B R O U T I N E =======================================
Show proc near ; CODE XREF: start:loc_1013Cp
mov ah, 3
int 10h ; - VIDEO - READ CURSOR POSITION
; BH = page number
; Return: DH,DL = row,column, CH = cursor start line, CL = cursor end line
mov bl, 8
mov al, dl
mul bl
mov bp, ax
mov al, dh
mov bl, 10h
mul bl
mov dx, ax
retn
Show endp
jmp short loc_10120
; ---------------------------------------------------------------------------
align 8
aHzk16 db '\HZK16',0
aNotFound db 'not found!',7,0Dh,0Ah
db '$',0
align 4
loc_10120: ; CODE XREF: startj
push cs
pop ds
mov ah, 0Fh
int 10h ; - VIDEO - GET CURRENT VIDEO MODE
; Return: AH = number of columns on screen
; AL = current video mode
; BH = current active display page
mov ah, 0
mov ds:0C0h, ax
mov ax, 12h
int 10h ; - VIDEO - SET VIDEO MODE
; AL = mode
mov ah, 0Bh
mov bx, 101h
int 10h ; - VIDEO - SET COLOR PALETTE
; BH = 00h, BL = border color
; BH = 01h, BL = palette (0-3)
mov bx, 0
int 10h ; - VIDEO - SET COLOR PALETTE
; BH = 00h, BL = border color
; BH = 01h, BL = palette (0-3)
loc_1013C: ; CODE XREF: start+B0j
call Show
mov si, 1FFh
mov di, 10h
loc_10145: ; CODE XREF: start+6Fj
mov cx, 2
loc_10148: ; CODE XREF: start+65j
push cx
mov bl, [si]
mov cx, 8
loc_1014E: ; CODE XREF: start+61j
push cx
shl bl, 1
jb short loc_10157
mov al, 0
jmp short loc_10159
; ---------------------------------------------------------------------------
loc_10157: ; CODE XREF: start+51j
; DATA XREF: start:loc_10182r ...
mov al, 1
loc_10159: ; CODE XREF: start+55j
mov cx, bp
mov ah, 0Ch
int 10h ; - VIDEO - WRITE DOT ON SCREEN
; AL = color of dot, BH = display page
; CX = column, DX = row
inc bp
pop cx
loop loc_1014E
inc si
pop cx
loop loc_10148
dec di
nop
jz short loc_10171
inc dx
sub bp, 10h
jmp short loc_10145
; ---------------------------------------------------------------------------
loc_10171: ; CODE XREF: start+69j
mov ah, 0
int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY
; Return: AH = scan code, AL = character
cmp al, 0Dh
jnz short loc_10182
loc_10179: ; CODE XREF: start+89j
mov ax, ds:0C0h
int 10h ; - VIDEO -
mov ah, 4Ch
int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
; AL = exit code
; ---------------------------------------------------------------------------
loc_10182: ; CODE XREF: start+77j
mov al, byte ptr loc_10157+1
inc al
cmp al, 0FFh
jz short loc_10179
mov byte ptr loc_10157+1, al
mov bl, al
mov cl, 4
shr al, cl
or al, 30h
cmp al, 39h
jbe short loc_1019C
add al, 7
loc_1019C: ; CODE XREF: start+98j
mov ah, 0Eh
int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
; AL = character, BH = display page (alpha modes)
; BL = foreground color (graphics modes)
mov al, bl
and al, 0Fh
or al, 30h
cmp al, 39h
jbe short loc_101AC
add al, 7
loc_101AC: ; CODE XREF: start+A8j
mov ah, 0Eh
int 10h ; - VIDEO - WRITE CHARACTER AND ADVANCE CURSOR (TTY WRITE)
; AL = character, BH = display page (alpha modes)
; BL = foreground color (graphics modes)
jmp short loc_1013C
start endp
; ---------------------------------------------------------------------------
align 8
; =============== S U B R O U T I N E =======================================
Show proc near ; CODE XREF: start:loc_1013Cp
mov ah, 3
int 10h ; - VIDEO - READ CURSOR POSITION
; BH = page number
; Return: DH,DL = row,column, CH = cursor start line, CL = cursor end line
mov bl, 8
mov al, dl
mul bl
mov bp, ax
mov al, dh
mov bl, 10h
mul bl
mov dx, ax
retn
Show endp
#11
data db 5 dup(0),2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,2,40h
db 2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,11h dup(0)
lbb_dot db 9,0,0FDh,8,9,8,9,10h,9,20h,79h,40h,41h,4,47h
db 0FEh,41h,40h,79h,40h,9,20h,9,20h,9,10h,9,4Eh,51h,84h
db 21h,0,10h,0,10h,20h,10h,40h,10h,84h,0FDh,0FEh,11h,4,31h
db 4,39h,4,55h,4,51h,0FCh,91h,4,11h,4,11h,4,11h,4
db 11h,0FCh,11h,4,0,20h,0,0F0h,0Fh,0,8,0,8,0,8
db 10h,0Fh,0F8h,8,40h,8,40h,8,44h,0FFh,0FEh,2 dup(0),4,40h,0Ch
db 30h,10h,18h,20h,8
db 1Ah
a1ff25eIsLbb_do db '[1ff-25e is lbb.dot.]',0
dw 0C721h
db 2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,2,40h,11h dup(0)
lbb_dot db 9,0,0FDh,8,9,8,9,10h,9,20h,79h,40h,41h,4,47h
db 0FEh,41h,40h,79h,40h,9,20h,9,20h,9,10h,9,4Eh,51h,84h
db 21h,0,10h,0,10h,20h,10h,40h,10h,84h,0FDh,0FEh,11h,4,31h
db 4,39h,4,55h,4,51h,0FCh,91h,4,11h,4,11h,4,11h,4
db 11h,0FCh,11h,4,0,20h,0,0F0h,0Fh,0,8,0,8,0,8
db 10h,0Fh,0F8h,8,40h,8,40h,8,44h,0FFh,0FEh,2 dup(0),4,40h,0Ch
db 30h,10h,18h,20h,8
db 1Ah
a1ff25eIsLbb_do db '[1ff-25e is lbb.dot.]',0
dw 0C721h
#12
mov si, 1FFh ;硬编码
#13
楼上的太N了。。。
不懂是啥。。。
得学习
给解释解释下。。。。
不懂是啥。。。
得学习
给解释解释下。。。。
#14
这里很少有人用IDA吗?
DEBUG是多年之前的编程调试工具了,别故弄玄虚让大家看不懂哦。
DEBUG是多年之前的编程调试工具了,别故弄玄虚让大家看不懂哦。
#15
回复 zhpbeyond 用DEBUG不是故弄玄虚,原因如下:
①.大家都不欢看长贴,程序以BAT形式发来,长度最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如: les ax,sp。
④.用DEBUG,写的程序也是最短的。你可试写这题:
汇编用递归实现汉诺伊塔(汉诺伊塔盘数1-9个)。
要求:1.从键盘接收盘数,屏显移盘步骤。
2.编译后的代码长度限制在90H以内。
①.大家都不欢看长贴,程序以BAT形式发来,长度最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如: les ax,sp。
④.用DEBUG,写的程序也是最短的。你可试写这题:
汇编用递归实现汉诺伊塔(汉诺伊塔盘数1-9个)。
要求:1.从键盘接收盘数,屏显移盘步骤。
2.编译后的代码长度限制在90H以内。
#16
①.大家都不欢看长贴,程序以BAT形式发来,长度最短。
这点不成立,不发帖最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如:les ax,sp。
可以局部用db定义,没必要全部都是hex
④.用DEBUG,写的程序也是最短的。
这个取决于编译模式,汇编也可以做com文件的.
这点不成立,不发帖最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如:les ax,sp。
可以局部用db定义,没必要全部都是hex
④.用DEBUG,写的程序也是最短的。
这个取决于编译模式,汇编也可以做com文件的.
#17
姓刘的果然够牛!学习了!