- [qiangzi] 楼主有空的话能帮我装一下dos吗?我一直装不上,qq519710391,先谢谢! 02/06 20:34
- [zwz_good] 看到自己的注释能给别人带来帮助,心里非常高兴,也许这就是帮助别人的快乐吧。 10/20 16:23
- [游客] 程序测试了一下,没什么问题。 10/20 14:25
- [游客] 博主程序中的那部分注释说明非常重要,非常有用,非常有帮助。好啊。 10/20 14:15
- [zwz_good] 谢谢你的鼓励。 10/10 20:56
- [游客] 自己实现更能体会过程,有好处,做完了再做便捷的就知道便捷在哪了。 顶博主! 10/10 14:25
- [zwz_good] 噢,习惯了使用这个子程序了,再来一个使用INT 21H中断的,谢谢提醒。 10/09 20:25
- [tinyparticle] ;名称:show_str 显示字符串子程序 ;功能:在指定的位置,用指定的颜色,显示一个用0 10/09 20:17
- [tinyparticle] 同意楼上 10/08 22:56
- [20081148] 你的7ch中断例程有问题,题目要求实现无条件段内近转移 jmp near ptr s指令,可你的代码 10/08 22:24
- [20081148] 你的虚拟机从哪下的啊?我下了好几个,都不能用,无语了。 10/21 08:53
[2009-10-07 17:00] 检测点13.1
第一小题
由于栈的操作基于字的操作,所以用栈来传递位移时,它的范围应该是-32768~32767 (由于位移是差值,可能是正,也可能是负)
第二小题
========7ch号中断及安装程序=========
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset lp
mov ax, 0
mov es, ax
mov di, 200h
mov cx, offset lpend - offset lp
cld
rep movsb
mov ax, 0
mov es, ax
mov word ptr es:[7ch*4], 200h
mov word ptr es:[7ch*4+2], 0h
mov ax, 4c00h
int 21h
lp:
push bp
mov bp, sp
dec cx
jcxz lpret
add [bp+2], bx
lpret:
pop bp
iret
lpend:
nop
code ends
end start
========应用7ch号中断的程序=========
assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, 0
mov ax, 0b800h
mov es, ax
mov di, 12*160
s:
cmp byte ptr [si], 0
je ok
mov al, [si]
mov es:[di], al
inc si
add di, 2
mov bx, offset s - offset ok
int 7ch
ok:
mov ax, 4c00h
int 21h
code ends
end start
========经20081148朋友的提醒改正==2009.10.09========
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset lp
mov ax, 0
mov es, ax
mov di, 200h
mov cx, offset lpend - offset lp
cld
rep movsb
mov ax, 0
mov es, ax
mov word ptr es:[7ch*4], 200h
mov word ptr es:[7ch*4+2], 0h
mov ax, 4c00h
int 21h
lp:
push bp
mov bp, sp
;dec cx ;去掉对cx的操作及检测后,
;jcxz lpret ;就变成了jmp near ptr s功能了。
add [bp+2], bx
lpret:
pop bp
iret
lpend:
nop
code ends
end start
============感谢20081148朋友的提醒==========
由于栈的操作基于字的操作,所以用栈来传递位移时,它的范围应该是-32768~32767 (由于位移是差值,可能是正,也可能是负)
第二小题
========7ch号中断及安装程序=========
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset lp
mov ax, 0
mov es, ax
mov di, 200h
mov cx, offset lpend - offset lp
cld
rep movsb
mov ax, 0
mov es, ax
mov word ptr es:[7ch*4], 200h
mov word ptr es:[7ch*4+2], 0h
mov ax, 4c00h
int 21h
lp:
push bp
mov bp, sp
dec cx
jcxz lpret
add [bp+2], bx
lpret:
pop bp
iret
lpend:
nop
code ends
end start
========应用7ch号中断的程序=========
assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:
mov ax, data
mov ds, ax
mov si, 0
mov ax, 0b800h
mov es, ax
mov di, 12*160
s:
cmp byte ptr [si], 0
je ok
mov al, [si]
mov es:[di], al
inc si
add di, 2
mov bx, offset s - offset ok
int 7ch
ok:
mov ax, 4c00h
int 21h
code ends
end start
========经20081148朋友的提醒改正==2009.10.09========
assume cs:code
code segment
start:
mov ax, cs
mov ds, ax
mov si, offset lp
mov ax, 0
mov es, ax
mov di, 200h
mov cx, offset lpend - offset lp
cld
rep movsb
mov ax, 0
mov es, ax
mov word ptr es:[7ch*4], 200h
mov word ptr es:[7ch*4+2], 0h
mov ax, 4c00h
int 21h
lp:
push bp
mov bp, sp
;dec cx ;去掉对cx的操作及检测后,
;jcxz lpret ;就变成了jmp near ptr s功能了。
add [bp+2], bx
lpret:
pop bp
iret
lpend:
nop
code ends
end start
============感谢20081148朋友的提醒==========
评论次数(2) |
浏览次数(425) |
类型(汇编作业) |
收藏此文 |
[ 20081148 发表于 2009-10-08 22:24 ]
你的7ch中断例程有问题,题目要求实现无条件段内近转移 jmp near ptr s指令,可你的代码实现的是loop指令
[ tinyparticle 发表于 2009-10-08 22:56 ]
同意楼上