- [qiangzi] (3)中的cs好像不对 01/21 19:13
- [游客] 很厉害 ^_^ 01/11 17:29
- [thefire] 恩。 11/10 19:15
- [214312153] inc bx和jcxz ok 应该调换下位置吧?不然存储在DX中的偏移地址多加了1 11/10 18:11
- [lukan727] 撒花…… 11/03 20:59
- [mess] 关键点就是相对位移,博主分析的很对。 10/29 15:24
- [younggay] 没问题。 10/21 11:22
- [tinyparticle] 正确 10/13 18:49
- [thefire] 哎,还得多注意呀,刚才做检测题又犯毛病了 多谢多谢! 10/08 15:12
- [mess] 有一句话叫“细节决定成败”,博主继续加油啊~ 10/08 15:09
[2010-01-10 23:39] 纠结呀。。。。不过算是能显示了。课程设计二之第一步
开始做课程设计二,打算尽快做完,后面还有众多考试等着呢。
课程二想了老长时间了。就是得不到想要的效果。
看了看别人写的代码,原来是偏移地址设定的不正确。可见我在这一方面是很不足的。以后得多多练习。不过还是有疑问的。
下面是代码:
assume cs:code
code segment
db 07c00h dup(0);原先没有写着一句。这一句是用来保证当前标号与被复制到内存之后的标号一致 。这是看别人代码写的。还是有点疑问的。就是复制的代码是从myos开始的。在运行时也是从软盘将myos后的代码加载的内存中的。那么这段代码是干嘛的?
myos:
jmp ...
课程二想了老长时间了。就是得不到想要的效果。
看了看别人写的代码,原来是偏移地址设定的不正确。可见我在这一方面是很不足的。以后得多多练习。不过还是有疑问的。
下面是代码:
assume cs:code
code segment
db 07c00h dup(0);原先没有写着一句。这一句是用来保证当前标号与被复制到内存之后的标号一致 。这是看别人代码写的。还是有点疑问的。就是复制的代码是从myos开始的。在运行时也是从软盘将myos后的代码加载的内存中的。那么这段代码是干嘛的?
myos:
jmp ...
阅读全文 |
评论次数(1) |
浏览次数(661) |
所属类型(学习心得)
[2010-01-08 22:22] 实验17及测试
实验17代码:(安装int 7ch)
assume cs:code
stack segment
db 128 dup(0)
stack ends
code segment
start:
;首先安装程序
mov ax,cs
mov ds,ax
;把新中断例程装入目的地址
mov si,offset int7c
mov ax,0
mov es,ax
mov di,200h
mov cx,offset int7cend-offset int7c
cld
rep movsb...
assume cs:code
stack segment
db 128 dup(0)
stack ends
code segment
start:
;首先安装程序
mov ax,cs
mov ds,ax
;把新中断例程装入目的地址
mov si,offset int7c
mov ax,0
mov es,ax
mov di,200h
mov cx,offset int7cend-offset int7c
cld
rep movsb...
阅读全文 |
评论次数(0) |
浏览次数(475) |
所属类型(汇编作业)
[2010-01-08 19:04] 关于实验16的疑惑以及解惑
前面的几个实验都做了,不过不是在自己电脑上做的。代码没有整理,也就不贴过来了。
这个实验里有两个疑惑:1.如果把start标号后的内容放到要安装的代码之前就会出错;2.如果把cs设为0,ip设为200h.也会出错,只有将cs设为20h,ip设为0才行。
从论坛中找到一个解释:
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1219&qkSg=2&qID=1502&readSg=1
关于第一个疑惑:table dw sub1……中SUB1存放的应该是子程序的偏移地址,这个偏移地址是相对于中...
这个实验里有两个疑惑:1.如果把start标号后的内容放到要安装的代码之前就会出错;2.如果把cs设为0,ip设为200h.也会出错,只有将cs设为20h,ip设为0才行。
从论坛中找到一个解释:
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1219&qkSg=2&qID=1502&readSg=1
关于第一个疑惑:table dw sub1……中SUB1存放的应该是子程序的偏移地址,这个偏移地址是相对于中...
阅读全文 |
评论次数(0) |
浏览次数(515) |
所属类型(汇编作业)
[2009-12-24 10:51] 实验十一 编写子程序
好长时间没看汇编了,该考试了
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax,datasg
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 12h
letterc:
mov al,[si]
cmp al,97 ;如果大于等于97,并且小于等于122(说明是小写字母)
jb ...
assume cs:codesg
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax,datasg
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 12h
letterc:
mov al,[si]
cmp al,97 ;如果大于等于97,并且小于等于122(说明是小写字母)
jb ...
阅读全文 |
评论次数(0) |
浏览次数(491) |
所属类型(汇编作业)
[2009-11-10 21:43] 时间太长了
课程一可算是整完了,从昨天下午开始动手,只要一有空就做这个,其他的就先放一放。本来还觉得到昨天晚上能搞定的。谁知……
本来是要把原先的那个实验7改一下,但是以前的写的太乱,寄存器用的也乱,就把那个再次重写了。时间这么长主要是因为在计算时的那个溢出错误。逻辑上推了还几遍觉得不会有错的,但是就是出错。无奈,还是道行太浅的缘故。
继续努力吧。不过还得学习自己的专业,并且现在任务还有些重,汇编看的时间就少了些了,不过还是要看的。
下面给出我那个出错的代码不是完全的设计一:
assume cs:codesg
data segment
db '1975','1976'...
本来是要把原先的那个实验7改一下,但是以前的写的太乱,寄存器用的也乱,就把那个再次重写了。时间这么长主要是因为在计算时的那个溢出错误。逻辑上推了还几遍觉得不会有错的,但是就是出错。无奈,还是道行太浅的缘故。
继续努力吧。不过还得学习自己的专业,并且现在任务还有些重,汇编看的时间就少了些了,不过还是要看的。
下面给出我那个出错的代码不是完全的设计一:
assume cs:codesg
data segment
db '1975','1976'...
阅读全文 |
评论次数(0) |
浏览次数(472) |
所属类型(学习心得)
[2009-11-10 21:24] 课程设计一
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,80...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,80...
阅读全文 |
评论次数(0) |
浏览次数(449) |
所属类型(汇编作业)
[2009-11-09 14:29] 实验十 编写子程序
也不知道写的对不对,且发上来,等待大侠们的指点
;程序说明,其中用到了实验中两个子程序:show_str和dtoc,
;功能:将ax中的数据转换为字符的形式显示出来。
;本来想把那个divdw的子程序也加进来,发现加入之后就乱了。
assume cs:code
data segment
db 10 dup(0)
data ends
code segment
start:mov ax,62666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
...
;程序说明,其中用到了实验中两个子程序:show_str和dtoc,
;功能:将ax中的数据转换为字符的形式显示出来。
;本来想把那个divdw的子程序也加进来,发现加入之后就乱了。
assume cs:code
data segment
db 10 dup(0)
data ends
code segment
start:mov ax,62666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
...
阅读全文 |
评论次数(0) |
浏览次数(390) |
所属类型(汇编作业)
[2009-11-02 11:59] 检测点10.5
(1)下面的程序执行后,ax中的数值为多少?(注意:用call 指令的原理来分析,不要再Debug中单步跟踪来验证你的结论。对于此程序,在debug中单步跟踪的结果,不能代表cpu的实际执行结果)
assume cs:code
data segment
dw 8 dup(0)
data ends
code segment
start:mov ax,data
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0
call word ptr ds:[0eh]
inc ax
inc ax
inc a...
assume cs:code
data segment
dw 8 dup(0)
data ends
code segment
start:mov ax,data
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0
call word ptr ds:[0eh]
inc ax
inc ax
inc a...
阅读全文 |
评论次数(0) |
浏览次数(497) |
所属类型(汇编作业)
[2009-11-01 20:09] 检测点10.4
下面的程序执行后,ax中的数值为多少?
内存地址 机器码 汇编指令
1000:0 b8 06 00 mov ax,6
1000:2 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
结果ax=Bh...
内存地址 机器码 汇编指令
1000:0 b8 06 00 mov ax,6
1000:2 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
结果ax=Bh...
阅读全文 |
评论次数(0) |
浏览次数(480) |
所属类型(汇编作业)
[2009-11-01 20:04] 检测点10.3
下面的程序执行后,ax中的数值为多少?
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,0
1000:3 9a 09 00 01 00 call far ptr s
1000:6 40 inc ax
1000:7 58 s:pop ax
add ax,ax
pop bx
add ax,bx
ax=1010...
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,0
1000:3 9a 09 00 01 00 call far ptr s
1000:6 40 inc ax
1000:7 58 s:pop ax
add ax,ax
pop bx
add ax,bx
ax=1010...
阅读全文 |
评论次数(0) |
浏览次数(414) |
所属类型(汇编作业)
『 查看更多文章 』