com格式


热门范文 2019-05-17 04:27:43 热门范文
[摘要]一:[com格式]COM文件格式COM文件不允许分段,所占有的空间不允许超过64KB,其入口点(开始运行的起始点)必须是100H(其前面的256个字节为程序前缀所在地),且不必设置堆栈段 在程序装入时,由系统自动把SP建立在该段之末 对所有的过程应定义为NEAR属性 标准格式:program

【www.shanpow.com--热门范文】

一:[com格式]COM文件格式


 COM文件不允许分段,所占有的空间不允许超过64KB,其入口点(开始运行的起始点)必须是100H(其前面的256个字节为程序前缀所在地),且不必设置堆栈段.在程序装入时,由系统自动把SP建立在该段之末.对所有的过程应定义为NEAR属性.
 
 
标准格式:
program    SEGMENT
        ORG    100H
        ASSUME CS : program, DS : program, ES : program, SS : program
main    PROC    NEAR
        ;code  go  here 汇编代码*/
        MOV    AX , 4C00H    ;return to DOS
        INT    21H
        ;data go here 数据定义*/
program    ENDS
    END    main
 
 
 
对于MASM 5.0, 6.0版,也可用如下格式:
;title go here
       .model tiny
        .code
        ORG    100H
start:    JMP    begin
        ;data go here
begin:
        ;code go here
        MOV    AX , 4C00H
        INT    21H
    END    start
对于com注意以下几个问题:  1.com没有header  2.com程序不分段  3.com入口点必须是100h  4.com不必设置stack,sp=段尾  5.com的过程为near  然后用exe2bin把exe变成com
 
COM格式文件最大64K,无重定位项目,加载速度快,且DS=ES=CS=SS,IP=100即其第一条指令位于段内偏移量100H的位置,其格式为:==================================================================     .model tiny        ;这句很关键     .data              ;对于COM格式文件,数据段的内容会自动放到代码段后data db "My data Area!",0              .code     .startup           ;可使下面的指令从0100H 开始(适应COM格式文件的要求)               .exit              ;结束程序,相当于 MOV AH,4CH/INT 21H     end------------------------------------------------------编译链接:ml  文件名.asm,而后直接生成可执行文件:文件名.com------------------------------------------------------;例:下面是一个COM格式的文件,涉及到结构的使用。;文件名:1.asmMAN STRUCT      ;定义一个结构,在win32中非常常用!  W  dw 1234h           ;dw 也可用 word  B  db 9 dup(?)        ;db 也可用 byteMAN ENDS.model tiny     ;COM格式文件.data           ;对于COM格式文件,数据段的内容会自动放到代码段后zz  MAN <>,<1,"abcd">,<3,"Ldf">.code           ;代码段.startup        ;可使下面的指令从0100H 开始(COM格式文件要求)    mov ax,3031h    mov zz.W,ax         ;对结构赋值    mov zz.B,"1"    mov ax,type(MAN)    ;取结构所占字节数    .exit               ;可设置返回码,如:.EXIT 3相当于 MOV AX,4C03H/INT 21H    end-----------------------------------------------------------下面是生成1.com文件的详细操作过程D:/Masm615>dirVolume in drive D has no labelVolume Serial Number is 18F0-186BDirectory of D:/Masm615.              〈DIR〉        02-04-03  21:56 ...             〈DIR〉        02-04-03  21:56 ..MASMREF  DOC       264,704  02-23-00  20:00 MASMREF.DOCML       ERR         9,687  03-16-00  16:20 ML.ERRML       EXE       385,072  02-04-03  21:57 ML.EXEMASM     EXE        49,152  12-30-00  14:04 MASM.EXELINK     EXE       364,544  01-13-95  14:10 LINK.EXE1        ASM           566  02-15-03  11:10 1.asm         6 file(s)      1,073,725 bytes         2 dir(s)   2,410,340,352 bytes freeD:/Masm615>ml 1.asmMicrosoft (R) Macro Assembler Version 6.15.8803        Patched for you by promethee [ECL] in the year 2001 - enjoyCopyright (C) Microsoft Corp 1981-2000.  All rights reserved.Assembling: 1.asmMicrosoft (R) Segmented Executable Linker  Version 5.60.339 Dec  5 1994Copyright (C) Microsoft Corp 1984-1993.  All rights reserved.Object Modules [.obj]: 1.obj /tRun File [1.com]: "1.com"List File [nul.map]: NULLibraries [.lib]:Definitions File [nul.def]:D:/Masm615>dir 1Volume in drive D has no labelVolume Serial Number is 18F0-186BDirectory of D:/Masm6151        ASM           566  02-15-03  11:10 1.asm1        OBJ           156  02-15-03  11:13 1.obj1        COM            51  02-15-03  11:13 1.com         3 file(s)            773 bytes         0 dir(s)   2,410,332,160 bytes free---------------下面是用debug查看程序的结果--------------------rAX=0000  BX=0000  CX=0033  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000DS=0B7F  ES=0B7F  SS=0B7F  CS=0B7F  IP=0100   NV UP EI PL NZ NA PO NC0B7F:0100 B83130        MOV     AX,3031-u100 1100B7F:0100 B83130        MOV     AX,30310B7F:0103 A31201        MOV     [0112],AX0B7F:0106 C606140131    MOV     BYTE PTR [0114],310B7F:010B B80B00        MOV     AX,000B0B7F:010E B44C          MOV     AH,4C0B7F:0110 CD21          INT     21-d112 L210B7F:0110        34 12 00 00 00 00-00 00 00 00 00 01 00 61     4............a0B7F:0120  62 63 64 00 00 00 00 00-03 00 4C 64 66 00 00 00   bcd.......Ldf...0B7F:0130  00 00 00   

二:[com格式]COM文件格式


codes segment public ‘code‘ org 100H assume cs:codes,ds:codes,es:codesmain proc near jmp startmess db ‘How are you?$‘
start: mov ah,09H mov dx,offset mess int 21H
 int 20Hmain endpcodes ends end main 

三:[com格式]COM文件格式


codes segment public "code" org 100H assume cs:codes,ds:codes,es:codesmain proc near jmp startmess db "How are you?$"
start: mov ah,09H mov dx,offset mess int 21H
 int 20Hmain endpcodes ends end main 

本文来源:https://www.shanpow.com/news/299706/

《com格式.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

相关阅读
  • 《中国九年义务教育歌》 《中国九年义务教育歌》
  • 员工作业效率算法说明 员工作业效率算法说明
  • 补入党介绍人证明 补入党介绍人证明
  • 严字当头确保全面从严治党主体责任落地落实 严字当头确保全面从严治党主体责任落地落实
  • 被巡察单位党组工作汇报材料 被巡察单位党组工作汇报材料
  • 疫情防控党课讲稿大全 疫情防控党课讲稿大全
  • 疫情防控事迹材料 疫情防控先进个人事迹材料 疫情防控事迹材料 疫情防控先进个人事迹材料
  • 大学生读书笔记1000字 大学生读书笔记1000字
为您推荐