Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
Demo051
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
ASM Lab Group
实验项目模板
汇编程序演示项目模板
Demo051
提交
364da964
提交
364da964
12月 14, 2018
创建
作者:
赵鹏翀
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
init template
上级
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
128 行增加
和
0 行删除
+128
-0
.gitignore
.gitignore
+6
-0
Demo051.asmproj
Demo051.asmproj
+21
-0
Demo051.puo
Demo051.puo
+0
-0
main.asm
main.asm
+101
-0
没有找到文件。
.gitignore
0 → 100644
浏览文件 @
364da964
/*.img
/bochs
/Debug
/Release
bochsout.txt
\ No newline at end of file
Demo051.asmproj
0 → 100644
浏览文件 @
364da964
<?xml version="1.0" encoding="gb2312"?>
<ASMProject
Version=
"1.00"
Name=
"Demo051"
>
<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>
Demo051.puo
0 → 100644
浏览文件 @
364da964
添加文件
main.asm
0 → 100644
浏览文件 @
364da964
assume
cs
:
code
stack
segment
db
128
dup
(
0
)
stack
ends
data
segment
dw
0
,
0
data
ends
code
segment
start
:
mov
ax
,
stack
mov
ss
,
ax
mov
sp
,
128
mov
ax
,
data
mov
ds
,
ax
mov
ax
,
0
mov
es
,
ax
push
es
:
[
9
*
4
]
pop
ds
:
[0]
push
es
:
[
9
*
4
+
2
]
pop
ds
:
[2]
;将原来的int 9中断例程的入口地址保存在ds:0、ds:2单元中
mov
word
ptr
es
:
[
9
*
4
]
,
offset
int9
mov
es
:
[
9
*
4
+
2
]
,
cs
;在中断向量表中设置新的int 9中断例程的入口地址
mov
ax
,
0
b800h
mov
es
,
ax
mov
ah
,
'a'
s
:
mov
es
:
[
160
*
12
+
40
*
2
]
,
ah
call
delay
inc
ah
cmp
ah
,
'z'
jna
s
mov
ax
,
0
mov
es
,
ax
push
ds
:
[0]
pop
es
:
[
9
*
4
]
push
ds
:
[2]
pop
es
:
[
9
*
4
+
2
]
;将中断向量表中int 9中断例程的入口恢复为原来的地址
mov
ax
,
4
c00h
int
21
h
delay
:
;循环延时
push
ax
push
dx
mov
dx
,
2000
h
;数字可根据自己机器的速度设置
mov
ax
,
0
s1
:
sub
ax
,
1
sbb
dx
,
0
cmp
ax
,
0
jne
s1
cmp
dx
,
0
jne
s1
pop
dx
pop
ax
ret
;-------------新的int 9中断例程-----------------
int9
:
push
ax
push
bx
push
es
in
al
,
60
h
pushf
pushf
;因为进入中断例程后,IF和TF都已经置0,所以可不必再设置
pop
bx
and
bh
,
11111100
b
push
bx
popf
call
dword
ptr
ds
:
[0]
;对ing指令进行模拟,调用原来的int 9中断例程
cmp
al
,
1
jne
int9ret
mov
ax
,
0
b800h
mov
es
,
ax
inc
byte
ptr
es
:
[
160
*
12
+
40
*
2
+
1
]
;将属性值加1,改变颜色
int9ret
:
pop
es
pop
bx
pop
ax
iret
code
ends
end
start
\ No newline at end of file
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论