. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->外中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  有两个代码一直想不明白请大家帮忙了!  [待解决] 回复[ 4次 ]   点击[ 256次 ]  
yemailu
[帖 主]   [ 发表时间:2012-08-10 21:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-06-25 02:11
assume cs:code,ds:rrr

rrr segment
db  128  dup (0)

rrr ends

code segment 
start:
mov ax,rrr
mov ss,ax
mov sp,128

mov ax,cs
mov ds,ax


mov ax,0
mov es,ax

mov si,offset int9s1
mov di,204h
push  es:[9*4]
pop es:[200h]
push es:[9*4+2]
pop es:[202h]

cli
mov word ptr es:[9*4],204h
mov word ptr es:[9*4+2],0
sti



mov cx,offset int9s2 -offset int9s1
cld
rep movsb


mov ax,4c00h
int 21h


int9s1:
push ax
push bx
push es

in al,60h
pushf
call dword ptr cs:[200h]

mov bx,0b800h
mov es,bx

mov byte ptr es:[160*10+10],al
inc byte ptr es:[160*10+11]

pop es
pop bx
pop ax
iret


int9s2:
nop









code ends  
end start
yemailu
[第1楼]   [ 回复时间:2012-08-10 22:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-06-25 02:11
mov ax,cs 
mov ds,ax 
上面为什么要加上这两句
fpamc
[第2楼]   [ 回复时间:2012-08-11 08:00 ]   [引用]   [回复]   [ top ] 
荣誉值:30
信誉值:4
注册日期:2012-01-01 16:36
你先看看movsb这条指令所需要的参数,和功能你就知道了。
e56004474
[第3楼]   [ 回复时间:2012-08-11 10:27 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:1
注册日期:2008-09-04 16:35
直点要害,学习了。

从 源地址 复制到 目标地址。
你先看看movsb这条指令所需要的参数,源地址需要从DS开始,目标地址需要从ES开始。
mov ax,0 
mov es,ax 
这个目标地址到知道为什么需要,反而源地址不知道设置下了。。。
yemailu
[第4楼]   [ 回复时间:2012-08-11 13:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-06-25 02:11
晕啊!学傻了这个都忘了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved