assume cs:code data segment db ‘conversation‘ data ends code segment start: mov ax,data mov ds,ax mov si,0 mov cx,12 call capital ;执行CALL时,将有2步操作 ;1:CS IP 指向下一条汇编指令地址 ;2:sp = sp-2 ;3:push ip ;4:jmp 标号 mov ax,4c00h int 21h capital: and byte ptr [si],11011111b ;换成大写,然后以字节方式存储在ds:si 偏移地址中 inc si ;偏移地址自增1,指向下一个字符 loop capital ret ;ret 执行时,有以下几步操作 ;1: pop ip ;2: sp = sp +2 ;3: 取出桟里数据后,CS IP 指向的值已经改变,程序正常跳到 mov ax,4c00h处。 code ends end start
原文:http://www.cnblogs.com/killbit/p/4853783.html