在那个CMD Shell 黑窗口里运行 P.com ~:)
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
CSEG SEGMENT 'CODE'
ORG 100H
START: LEA DX, MSG
MOV AH, 09H
INT 21H
MOV AX, 4C00H
INT 21H
MSG DB "HELLO WORLD!$"
CSEG ENDS
END START
C:\MASM611\Redtek>debug
-A
0B05:0100 MOV DX,0100 ; 暂时不知道要输出内容Hello所在地址,先瞎添一个。
0B05:0103 MOV AH,09
0B05:0105 INT 21
0B05:0107 INT 20
0B05:0109 DB "Hello!$" ; 这回知道了"Hello!"在0109,一会再将0100处改回来。
0B05:0110
-A 0100
0B05:0100 MOV DX,0109 ; 修改0100处代码,将存有"Hello!"字串地址送入DX中。
0B05:0103
-RCX
CX 0000
:10 ; 编完的.com可执行文件的长度 16 个字节~:)
-N HELLO.COM
-W
Writing 00010 bytes
-Q
C:\MASM611\Redtek>hello.com
Hello!
Originally posted by redtek at 2006-12-15 13:46:
在那个CMD Shell 黑窗口里运行 P.com ~:)
Originally posted by GOTOmsdos at 2006-12-16 00:26:
过来纯支持一下,偶只会操作MBR的汇编
汇编是编程语言的《易经》
C:\TEMP\debug>DEBUG COL.COM LINE3 COL4
-R
AX=0000 BX=0000 CX=000C DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=0B39 ES=0B39 SS=0B39 CS=0B39 IP=0100 NV UP EI PL NZ NA PO NC
0B39:0100 B402 MOV AH,02
-S 0000 010C "LINE3"
0B39:005D
0B39:0082
-D 005D
0B39:0050 4C 49 4E LIN
0B39:0060 45 33 20 20 20 20 20 20-00 00 00 00 00 43 4F 4C E3 .....COL
0B39:0070 34 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00 4 ........
0B39:0080 0B 20 4C 49 4E 45 33 20-43 4F 4C 34 0D 45 33 20 . LINE3 COL4.E3
0B39:0090 43 4F 4C 34 0D 50 33 33-30 20 54 33 0D 74 2E 65 COL4.P330 T3.t.e
0B39:00A0 78 65 0D 00 00 00 00 00-00 00 00 00 00 00 00 00 xe..............
0B39:00B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0B39:00C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0B39:00D0 00 00 00 00 00 00 00 00-00 00 00 00 00 .............
-Q
0B03:0100 MOV,AH,09 ; 09H号功能调用
0B03:0102 MOV,AL,2A ; 把字符2AH(就是*号的16进制ASCII码)装入AL寄存器
0B03:0104 MOV,BH,00 ; 彩色显示卡支持0~7页,把0页装入BH寄存器
0B03:0106 MOV,BL,0E ; 把颜色值送入BL寄存器。(黄颜色:1110二进制,转16进制为:0EH
0B03:0108 MOV,CX,0020 ; 这个符号的显示次数20H送入CX.
0B03:010B INT,10 ; 显示器中断调用10H
0B03:010D MOV,BL,0A ; 换一种颜色 (1010绿色,转16进制是AH)
0B03:010F MOV,CX,000A ; 和上面一样,显示次数
0B03:0112 INT,10
0B03:0114 INT,20 ; 结束返回