assume cs:code
code segment
int7ch:
jmp begin
Fun db 32 dup(0) ;设置一段空间保存临时数据
Begin:
push ax
push dx
push cx ;保存现场
mov Fun[0],ah ;先将功能号保存
mov Fun[1],al ;先将要读取的扇区数保存
;取面号即磁头号
mov ax,bx ;低为存放逻辑扇区号
mov dx,0 ;高位置零
mov cx,1440 ;cx做除数
div cx ;取ax=i...
- [游客] wo lai le 12/23 18:50
- [tangxin] 非常有道理 03/06 09:23
- [游客] 现在学校的教学已经不是那么回事了,还是得靠自学。 06/04 12:13
- [assemblyeaten] 顶一下 05/11 10:48
- [游客] eg 05/04 15:55
- [hacker_ld] 哈哈哈!!好文章! 04/30 22:35
- [游客] 其实,很多女孩子也不想那么学,只因考试的时候要考概念,,,,怪谁呢 03/15 17:43
- [游客] 呵呵,,,,好,,,2012 08/25 10:35
- [asshuke] 说的很好,我等菜鸟奋起直追呀! 08/14 11:24
- [xuyanghui] 很好啊,对我很有用的,很经典,谢谢坐着啦. 04/11 18:05
- [游客] 千术揭密教学www.pwmhg.cn 马洪刚反赌www.puke56.cn 马洪刚千术揭秘w 06/07 10:57
- [游客] [url=http://www.gddzbq.com]深圳搬家公司[/url] [url=http 03/02 15:07
- [gecko] 自己给自己留句话! 做人,最怕懒惰,在如何事情上都一样!我不该过于贪图方便.这样的选择,不止我对自 08/25 13:36
- [游客] 您好好我是个超级菜鸟。看了博主的几篇肺腑之言我,深受触动。于是我,有个想法。报软考。最初级。。 请 06/01 14:24
- [Wednesday] 嘿嘿 03/10 15:14
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读 01/11 20:29
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读入 01/09 21:15
- [gocker] 我重新审视了自己的ID和博主的ID``偶发现,我们长得太像了。。。假使,如果``我的ID后门没有加上 12/21 23:03
- [happy] 不知gecko的意思是想说什么?摸不着头脑??? 12/20 13:11
- [Wednesday] 可以直接发消息给我 注意右上角的消息中心 哈哈 11/08 18:00
[2007-12-23 18:02] 实验十七_请前辈检查
阅读全文 |
评论次数(1) |
浏览次数(623) |
所属类型(汇编作业)
[2007-12-18 17:11] 字符串的输入
assume cs:codesg
codesg segment
getstr:
push ax
getstrs:
mov ah,0
int 16h
cmp al,20h
jb nochar ;在ASCII码表中,低于20H的是非字符码
mov ah,0
call charstack ;0功能号,将得到的字符入栈
mov ah,2
call charstack ;2功能号,显示栈中的字符
nochar:
cmp ah,0eH ;退格键的扫描码
je ba...
codesg segment
getstr:
push ax
getstrs:
mov ah,0
int 16h
cmp al,20h
jb nochar ;在ASCII码表中,低于20H的是非字符码
mov ah,0
call charstack ;0功能号,将得到的字符入栈
mov ah,2
call charstack ;2功能号,显示栈中的字符
nochar:
cmp ah,0eH ;退格键的扫描码
je ba...
阅读全文 |
评论次数(1) |
浏览次数(590) |
所属类型(汇编作业)
[2007-12-18 11:32] 实验十六总结
实验十六总结:
首先,从出错的程序说起吧:
assume cs:code
code segment
main:
------------------------中断安装程序开始---------------------------
mov ax,0
mov es,ax
mov di,200H
mov ax,cs
mov ds,ax
mov si,offset int7cH
;上面是为执行movsb设置
mov cx,offset int7ch_end - offset int7ch
cld
rep movsb
;上面将int7ch安装到指定内存中
mov wo...
首先,从出错的程序说起吧:
assume cs:code
code segment
main:
------------------------中断安装程序开始---------------------------
mov ax,0
mov es,ax
mov di,200H
mov ax,cs
mov ds,ax
mov si,offset int7cH
;上面是为执行movsb设置
mov cx,offset int7ch_end - offset int7ch
cld
rep movsb
;上面将int7ch安装到指定内存中
mov wo...
阅读全文 |
评论次数(3) |
浏览次数(590) |
所属类型(汇编作业)
[2007-12-17 11:35] 检测点17.1
"在int 16H中断例程中,一定有设置IF=1的指令."这种说法对吗?
答:
对,因为在执行int 16H中断例程的过程中,可能会使用int 9h中断例程,而int 9H中断例程是外中断,属于可屏蔽的中断例程.所以设置IF=1,可响应此中断....
答:
对,因为在执行int 16H中断例程的过程中,可能会使用int 9h中断例程,而int 9H中断例程是外中断,属于可屏蔽的中断例程.所以设置IF=1,可响应此中断....
阅读全文 |
评论次数(1) |
浏览次数(559) |
所属类型(汇编作业)
[2007-12-15 20:58] 实验十六_安装中断例程的疑惑(续)
有这么一条指令:
org expression
书上到十六章还没说吧!还是我看漏了?
这给实验十六恰好要用到这一指令..
不懂这一指令,请大家讲解下吧..
除了使用这一指令,使用现有知识解的话,突破点哪呢?
assume cs:code
code segment
main:
mov ax,0
mov es,ax
mov di,200H
mov ax,cs
mov ds,ax
mov si,offset int7cH
;上面是为执行movsb设置
mov cx,offset int7ch_end - offset int7ch
cld
rep ...
org expression
书上到十六章还没说吧!还是我看漏了?
这给实验十六恰好要用到这一指令..
不懂这一指令,请大家讲解下吧..
除了使用这一指令,使用现有知识解的话,突破点哪呢?
assume cs:code
code segment
main:
mov ax,0
mov es,ax
mov di,200H
mov ax,cs
mov ds,ax
mov si,offset int7cH
;上面是为执行movsb设置
mov cx,offset int7ch_end - offset int7ch
cld
rep ...
阅读全文 |
评论次数(2) |
浏览次数(535) |
所属类型(汇编作业)
[2007-12-12 16:48] 检测点16.2及一些看法
答案如下:
mov ax,data
mov es,ax
在《汇编语言》勘误区中有"P280页倒数6行 印刷错误"的帖子.
assume cs:code,es:data应该为
assume cs:code,ds:data
先不管是不是印刷错误,即使是错了,这道题仍是能解的.
从我的体会上来说,作者是有意这么出题的.
为何?
就是要我们理解,
通过assume es:data来声明,data段的段地址将是存放在es中的.
当然这只是声明下而已,实际情况es是不是存放data的段地址则另一回事.
所以在程序中我们需要:
mov ax,dat...
mov ax,data
mov es,ax
在《汇编语言》勘误区中有"P280页倒数6行 印刷错误"的帖子.
assume cs:code,es:data应该为
assume cs:code,ds:data
先不管是不是印刷错误,即使是错了,这道题仍是能解的.
从我的体会上来说,作者是有意这么出题的.
为何?
就是要我们理解,
通过assume es:data来声明,data段的段地址将是存放在es中的.
当然这只是声明下而已,实际情况es是不是存放data的段地址则另一回事.
所以在程序中我们需要:
mov ax,dat...
阅读全文 |
评论次数(1) |
浏览次数(530) |
所属类型(汇编作业)
[2007-12-11 22:39] 检测点16.1
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start:
mov si,0
mov cx,8
s:
mov ax,a[si]
add word ptr b[0],ax
adc word ptr b[2],0 ;谢谢wednesday大哥的指导,此处改过!
add si,2
loop s
mov ax,4c00H
int 21H
code ends
end start...
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start:
mov si,0
mov cx,8
s:
mov ax,a[si]
add word ptr b[0],ax
adc word ptr b[2],0 ;谢谢wednesday大哥的指导,此处改过!
add si,2
loop s
mov ax,4c00H
int 21H
code ends
end start...
阅读全文 |
评论次数(1) |
浏览次数(546) |
所属类型(汇编作业)
[2007-12-10 09:59] 实验十五_欢迎检查
assume cs:code
data segment
db 160 dup(0)
data ends
stack segment
db 160 dup(0)
stack ends
;不需要重新安装中断向量,只需设置中断向量表
code segment
main:
mov ax,stack
mov ss,ax
mov sp,160
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
;保存中断向量表
mov ax,es:[9*4]
mov ds:[0],ax ;偏移地址
mov ax,es:[9*...
data segment
db 160 dup(0)
data ends
stack segment
db 160 dup(0)
stack ends
;不需要重新安装中断向量,只需设置中断向量表
code segment
main:
mov ax,stack
mov ss,ax
mov sp,160
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
;保存中断向量表
mov ax,es:[9*4]
mov ds:[0],ax ;偏移地址
mov ax,es:[9*...
阅读全文 |
评论次数(3) |
浏览次数(571) |
所属类型(汇编作业)
[2007-12-07 14:12] 实验十四
assume cs:code
code segment
mov ax,0B800H
mov es,ax
mov di,160*8
mov dh,9 ;端口地址设置参数
mov cx,3
s: ;实现"年/月/日"的输出
push cx
mov al,dh
out 70H,al
in al,71H
mov ah,al ;端口中的取出
mov cl,4
shr ah,cl
add ah,30H
mov byte ptr es:[di],ah ...
code segment
mov ax,0B800H
mov es,ax
mov di,160*8
mov dh,9 ;端口地址设置参数
mov cx,3
s: ;实现"年/月/日"的输出
push cx
mov al,dh
out 70H,al
in al,71H
mov ah,al ;端口中的取出
mov cl,4
shr ah,cl
add ah,30H
mov byte ptr es:[di],ah ...
阅读全文 |
评论次数(1) |
浏览次数(575) |
所属类型(汇编作业)
[2007-12-07 12:36] 检测点14.2
assume cs:code
data segment
dw 16 dup(0)
data ends
code segment
main:
mov ax,data
mov ds,ax
mov bx,64H ;假设bx作为被操作数
mov cx,10 ;设置乘数为10
s:
mov ax,bx ;将被操作数赋值给ax进行操作
shl ax,1
add ds:[0],ax
dec cx ;执行一次循环相当于cx=cx-2
Loop s
mov ax,ds:[0] ;取回结果
mov ax,4c00...
data segment
dw 16 dup(0)
data ends
code segment
main:
mov ax,data
mov ds,ax
mov bx,64H ;假设bx作为被操作数
mov cx,10 ;设置乘数为10
s:
mov ax,bx ;将被操作数赋值给ax进行操作
shl ax,1
add ds:[0],ax
dec cx ;执行一次循环相当于cx=cx-2
Loop s
mov ax,ds:[0] ;取回结果
mov ax,4c00...
阅读全文 |
评论次数(2) |
浏览次数(551) |
所属类型(汇编作业)