2EA8678 26CF:8D5F 453A:CFAD 2933:31A6 5924CCF 694E:175A 2B3C218 728F:6578 68E1:A7DC 57EC:AEEA |
;;; 应该得到一个29字节的.com文件 .MODEL TINY .CODE CR equ 13 LF equ 10 TERMINATOR equ '$' ORG 100h Main PROC mov dx,offset sMessage mov ah,9 int 21h mov ax,4c00h int 21h Main ENDP sMessage: DB 'Hello, World!' DB CR,LF,TERMINATOR END Main | ; .COM文件的内存模型是‘TINY’ ; 代码段开始 ; 回车 ; 换行 ; DOS字符串结束符 ; 代码起始地址为CS:0100h ; 令DSX指向Message ; int 21h(DOS中断)功能9 - ; 显示字符串到标准输出设备 ; int 21h功能4ch - ; 终止程序并返回AL的错误代码 ; 程序结束的同时指定入口点为Main |
;;; 应该得到一个561 字节的EXE文件 .MODEL SMALL .STACK 200h CR equ 13 LF equ 10 TERMINATOR equ '$' .DATA Message DB 'Hello, World !' DB CR,LF,TERMINATOR .CODE Main PROC mov ax, DGROUP mov ds, ax mov dx, offset Message mov ah, 9 int 21h mov ax, 4c00h int 21h Main ENDP END main | ; 采用“SMALL”内存模型 ; 堆栈段 ; 回车 ; 换行 ; DOS字符串结束符 ; 定义数据段 ; 定义显示串 ; 定义代码段 ; 将数据段 ; 加载到DS寄存器 ; 设置DX ; 显示 ; 终止程序 |
int fun(){ int a=0; register int i; for(i=0; i<1000; i++) a+=i; return a; } |
push ebp mov ebp,esp sub esp,48h push ebx push esi push edi lea edi,[ebp-48h] mov ecx,12h mov eax,0CCCCCCCCh rep stos dword ptr [edi] mov dword ptr [ebp-4],0 mov dword ptr [ebp-8],0 jmp fun+31h mov eax,dword ptr [ebp-8] add eax,1 mov dword ptr [ebp-8],eax cmp dword ptr [ebp-8],3E8h jge fun+45h mov ecx,dword ptr [ebp-4] add ecx,dword ptr [ebp-8] mov dword ptr [ebp-4],ecx jmp fun+28h mov eax,dword ptr [ebp-4] pop edi pop esi pop ebx mov esp,ebp pop ebp ret | ; 子程序入口 ; 保护现场 ; 初始化变量-调试版本特有。 ; 本质是在堆中挖一块地儿,存CCCCCCCC。 ; 用串操作进行,这将发挥Intel处理器优势 ; ‘a=0’ ; ‘i=0’ ; 走着 ; i++ ; i<1000? ; a+=i; ; return a; ; 恢复现场 ; 返回 |
xor eax,eax xor ecx,ecx add eax,ecx inc ecx cmp ecx,3E8h jl fun+4 ret | ; a=0; ; i=0; ; a+=i; ; i++; ; i<1000? ; 是->继续继续 ; return a |
mov eax, 079f2ch ret | ; return 499500 |
mov ax,[0] |
mov bx,0 mov ax,[bx] |
mov [0],ax |
操作符 | 意义 |
byte ptr | 一个字节(8-bit, 1 byte) |
word ptr | 一个字(16-bit) |
dword ptr | 一个双字(32-bit) |
mov word ptr [100h],01234h |
mov reg(8,16,32), mem(8,16,32) mov mem(8,16,32), reg(8,16,32) mov mem(8,16,32), imm(8,16,32) |
mov ax,[bx+10] mov ax,[bx+si] mov ax,es:[di+bp] |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |