提交 93247ed6 创建 作者: 赵鹏翀's avatar 赵鹏翀

init template

上级
/*.img
/bochs
/Debug
/Release
bochsout.txt
\ No newline at end of file
<?xml version="1.0" encoding="gb2312"?>
<ASMProject Version="1.00" Name="Demo047">
<Configurations>
<Configuration Name="Debug" ConfigurationType="2">
<Tool Name="PreBuildEventTool"/>
<Tool Name="CustomBuildTool"/>
<Tool Name="GCCCompilerTool"/>
<Tool Name="JWASMAssemblerTool" ObjectFormate="5" GenerateDebugInformation="-1" VersionDebugInfo="-1" AdditionalOptions="/W0"/>
<Tool Name="PreLinkEventTool"/>
<Tool Name="GCCLinkerTool"/>
<Tool Name="JWlinkLinkerTool" AdditionalOptions="disable 1014"/>
<Tool Name="PostBuildEventTool"/>
</Configuration>
</Configurations>
<Files>
<Filter Name="Դļ" Filter="asm">
<File RelativePath=".\main.asm">
</File>
</Filter>
</Files>
</ASMProject>
添加文件
assume cs:codesg
codesg segment
start:
;将模拟loop指令功能的程序写入0:200处
mov ax, cs
mov ds, ax
mov si, offset lp
mov ax, 0
mov es, ax
mov di, 200h
mov cx, 80
cld
rep movsb
;设置中断向量表,将程序的入口地址保存在7ch表项中,使其成为中断7ch的中断例程
mov ax, 0
mov es, ax
mov word ptr es:[7ch*4], 200h
mov word ptr es:[7ch*4+2], 0
mov ax, 0b800h ;在屏幕中间显示80个'!'
mov es, ax
mov di, 160*12
mov bx, offset s-offset se ;设置从标号se到标号s的转移位移
mov cx, 80
s: mov byte ptr es:[di], '!'
add di, 2
int 7ch ;如果(cx)≠0,转移到标号s处
se:
nop
mov ax,4c00h
int 21h
lp:
push bp ;将bp入栈保存,结束时出栈恢复
mov bp, sp
dec cx
jcxz lpret
add [bp+2], bx
lpret:
pop bp
iret
codesg ends
end start
\ No newline at end of file
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论