|
主题 : : 13.1实验做完,这个还是比较好弄 [待解决] |
回复[ 3次 ]
点击[ 709次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-12-20 16:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-26 22:22 |
;几句话就搞完了。
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;mov ds:si => es:di
mov ax,cs
mov ds,ax
mov si,offset jump
mov ax,0
mov es,ax
mov di,0200h
mov cx,offset endjump - jump
rep movsb
;set up 7ch
mov es:[07ch * 4],0200h
mov es:[07ch * 4 + 2],0
int 7ch
MOV AH,4CH
INT 21H
;jmp ptr
jump:
push bp
mov bp,sp
;bp,ip,cs,flag
add [bp+2],bx
pop bp
iret
endjump:
nop
CODES ENDS
END START | | |
|
|
|
|
[第1楼]
[ 回复时间:2011-03-29 09:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-02-16 22:23 |
要求不是让但不跟踪吗?观察int、iret指令执行前后cs、ip和栈中的状态了吗?没发现问题吗? | | |
|
|
|
|
[第2楼]
[ 回复时间:2011-03-29 09:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-02-16 22:23 |
|
|
|
|
|
[第3楼]
[ 回复时间:2013-02-09 17:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-02-01 18:03 |
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset pst
mov ax,0
mov es,ax
mov di,200h
mov cx,offset pe-offset pst
cld
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ax,4c00h
int 21h
pst:push di
push si
push ds
push ax
push cx
push es
push dx
mov ax,0b800h
mov es,ax
mov al,160
mul dh
mov di,ax
pop dx
mov ax,2
mul dl
add di,ax
next:mov al,[si]
mov es:[di],al
inc di
mov es:[di],cl
inc di
inc si
cmp al,0
je outs
jmp short next
outs:pop es
pop cx
pop ax
pop ds
pop si
pop di
iret
pe:nop
code ends
end start | | |
|