目录 上一页 下一页 下一章

-288- PC机汇编语言实战精解

msg
vram
data

code

main













loop1:






exit:



main
code

db
dd
ends

segment
assume
proc
push
xor
push
mov
mov

mov
int

lea
les

mov

lodsb
cmp
jz

stosw
jmp

mov
int
ret
endp
ends
end
'World Wild Web-Paradis
0b8000670h



cs:code
far
ds
ax,ax
ax
ax,data
ds,ax

ax,0003h
10h

si,msg
di,vram

ah,2


al,0
exit


loop1

ah,0
16h



main
e and Tomb',0
;采用DD伪指令直接定义32位指针





;初始化堆栈


;初始化DS寄存器


;设置字符显示模式3


;将字符串MSG的有效地址送入SI寄存器
;将显示缓存的指针送入ES:DI

;字符属性字节

;取得一个字符
;已经到字符串结尾了吗?
;已到字符串结尾,转EXIT结束

;将字符及属性字节送入显示缓存中
;转LOOP1继续显示下一个字符

;等待键盘输入

;结束进程



  这个程序中引入了一些新的指令和伪指令,取代了"OFFSET"的指令就是"LEA":
助记符:LEA(Load Effective Address)
用 途:将数据的有效地址送入指定寄存器
格 式:LEA 寄存器,数据标号
执 行:标号对应的偏移地址送入指定的寄存器中
   "有效地址"这个词听上去有些耳生,其实有效地址就是数据在内存某个段内的偏移地址。使用LEA指令时不能再用"OFFSET"分析运算符,否则反而有错误。这个指令执行的操作

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章