怎样用8086汇编语言显示‘刘’字?

时间:2023-01-03 01:18:06
怎样用8086汇编语言显示‘刘’字? 急用啊最好是在四个小时内回答我啊!!!!

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,
};

#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);
}

#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值。回车键结束程序,长按其它键,“刘”字逐行
下移。

#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 



:CaiLiu 
Debug <CaiLiu.bat  

----------------------------------                     
    程序在屏幕左上角写一“刘”字,前面是当前彩色代码号。
回车键结束程序,长按其它键,“刘”字逐字后移。 

#9


大侠啊,请问这个是怎么得来的? 

要是单单有您这个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

#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

#12


mov si, 1FFh ;硬编码

#13


楼上的太N了。。。
不懂是啥。。。
得学习
给解释解释下。。。。

#14


这里很少有人用IDA吗?
DEBUG是多年之前的编程调试工具了,别故弄玄虚让大家看不懂哦。

#15


回复 zhpbeyond  用DEBUG不是故弄玄虚,原因如下:

①.大家都不欢看长贴,程序以BAT形式发来,长度最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如: les ax,sp
④.用DEBUG,写的程序也是最短的。你可试写这题:
    汇编用递归实现汉诺伊塔(汉诺伊塔盘数1-9个)。
   要求:1.从键盘接收盘数,屏显移盘步骤。
         2.编译后的代码长度限制在90H以内。

#16


①.大家都不欢看长贴,程序以BAT形式发来,长度最短。 
  这点不成立,不发帖最短。

②.一些程序加密后的乱码,也需用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,
};

#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);
}

#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值。回车键结束程序,长按其它键,“刘”字逐行
下移。

#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 



:CaiLiu 
Debug <CaiLiu.bat  

----------------------------------                     
    程序在屏幕左上角写一“刘”字,前面是当前彩色代码号。
回车键结束程序,长按其它键,“刘”字逐字后移。 

#9


大侠啊,请问这个是怎么得来的? 

要是单单有您这个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

#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

#12


mov si, 1FFh ;硬编码

#13


楼上的太N了。。。
不懂是啥。。。
得学习
给解释解释下。。。。

#14


这里很少有人用IDA吗?
DEBUG是多年之前的编程调试工具了,别故弄玄虚让大家看不懂哦。

#15


回复 zhpbeyond  用DEBUG不是故弄玄虚,原因如下:

①.大家都不欢看长贴,程序以BAT形式发来,长度最短。
②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如: les ax,sp
④.用DEBUG,写的程序也是最短的。你可试写这题:
    汇编用递归实现汉诺伊塔(汉诺伊塔盘数1-9个)。
   要求:1.从键盘接收盘数,屏显移盘步骤。
         2.编译后的代码长度限制在90H以内。

#16


①.大家都不欢看长贴,程序以BAT形式发来,长度最短。 
  这点不成立,不发帖最短。

②.一些程序加密后的乱码,也需用DEBUG来生成。
③.有些指令,不用DEBUG写不出来。比如:les ax,sp。
  可以局部用db定义,没必要全部都是hex
 
④.用DEBUG,写的程序也是最短的。
  这个取决于编译模式,汇编也可以做com文件的.

#17


姓刘的果然够牛!学习了!