汇编网首页登录博客注册
gecko的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  好男儿当志在天下,好男儿亦不负红颜!
  • 『姓名』:GECKO_LIN           
  • 『性别』:保密  『发送消息
  • 个人说明:好男儿当志在天下,好男儿亦不负红颜!
  • 详细信息『加为好友』
学习动态

[2007-12-23 18:02] 实验十七_请前辈检查

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...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(3) | 浏览次数(590) | 所属类型(汇编作业)

[2007-12-17 11:35] 检测点17.1

"在int 16H中断例程中,一定有设置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 ...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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*...
阅读全文 | 评论次数(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  ...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(2) | 浏览次数(551) | 所属类型(汇编作业)
页码数(4):  1  2  3  4