(1)call word ptr ds:[0EH] ;相当于
push IP ;(sp)=(sp)-2,sp=0EH
jmp ds:[0EH] ;(ds)=(ss),所以可以看成pop ip,
上面入栈的IP值是读取call word ptr ds:[0EH]后的值,所以执行后的IP是inc ax的开头,程序结束ax自加三次,ax=3
(2)
mov word ptr ss:[0],offset s ;ss:[0]=从代码开始到s位置的偏移地址
mov ss:[2],cs ;(ss:[2])=(cs)
call dword ptr ss:[0];(ss:[0EH])=(C...


- [longhun] 不好意思,已改正 11/12 10:11
- [niuyang168] 楼上的游客是我 11/11 21:51
- [游客] call dword ptr ss:[0];(ss:[0EH])=(IP),(ss:[0CH])=( 11/11 21:51
- [longhun] 不好意思,已改正!!! 11/11 16:39
- [longhun] 不好意思,已改正!!! 11/11 16:38
- [longhun] 不好意思,已改正!!! 11/11 16:38
- [longhun] 不好意思,已改正!!! 11/11 16:37
- [zhuzhu] 正确~ 11/11 16:00
- [zhuzhu] ax=6 通10.4 11/11 15:59
- [zhuzhu] 这个和10.4的问题一样,博主再改改 11/11 15:58
[2008-11-11 16:31] 检测点10.5
阅读全文 |
评论次数(3) |
浏览次数(615) |
所属类型(汇编作业)
[2008-11-11 15:39] 检测点10.4
执行call ax时,相当于
push ip ;ip=5
然后跳转到mov bp,sp
add ax,[bp];原本ax=6,[bp]是ss:bp的值,即[bp]=2
所以ax=6+5=11...
push ip ;ip=5
然后跳转到mov bp,sp
add ax,[bp];原本ax=6,[bp]是ss:bp的值,即[bp]=2
所以ax=6+5=11...
阅读全文 |
评论次数(2) |
浏览次数(565) |
所属类型(汇编作业)
[2008-11-11 15:29] 检测点10.3
执行call fat ptr s相当于
push cx ;cx=1000
push ip ;ip=8
然后转移到s。
pop ax ;ax=ip=8
add ax,ax ;ax=16=10h
pop bx ;bx=cs=1000h
add ax,bx ;ax=1010h
所以ax=1010h...
push cx ;cx=1000
push ip ;ip=8
然后转移到s。
pop ax ;ax=ip=8
add ax,ax ;ax=16=10h
pop bx ;bx=cs=1000h
add ax,bx ;ax=1010h
所以ax=1010h...
阅读全文 |
评论次数(2) |
浏览次数(716) |
所属类型(汇编作业)
[2008-11-11 15:19] 检测点10.2
在执行call s的时候,IP=6入栈,跳转到标号s:pop ax后,出栈ax=6...
阅读全文 |
评论次数(2) |
浏览次数(608) |
所属类型(汇编作业)
[2008-11-11 15:17] 检测点10.1
assume cs:code
stack segment
db 16 dup(0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,1000h ;第一空
push ax
mov ax,0 ;第二空
push ax
retf
code ends
end start...
stack segment
db 16 dup(0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,1000h ;第一空
push ax
mov ax,0 ;第二空
push ax
retf
code ends
end start...
阅读全文 |
评论次数(2) |
浏览次数(608) |
所属类型(汇编作业)
[2008-11-06 09:33] 试验9
(1)在这直接说一下试验8的奇怪之处,主要是jmp的段内转移指令的位移都是到‘标号’的偏移值,当把jmp short s1(其偏移值是-10)指令复制到标号s处,由s1转移到s,再执行jmp short s1,这时候主要是从s偏移-10,从开始位置执行mov ax,4c00h,
int 21h,结束程序。
(2)
assume cs:codesg
data segment
db 'welcome to masm!'
data ends
codesg segment
start: mov ax,0b800h
mov ds,ax ;输入位置的段地址
...
int 21h,结束程序。
(2)
assume cs:codesg
data segment
db 'welcome to masm!'
data ends
codesg segment
start: mov ax,0b800h
mov ds,ax ;输入位置的段地址
...
阅读全文 |
评论次数(2) |
浏览次数(486) |
所属类型(汇编作业)
[2008-11-05 15:07] 检测点9.3
inc cx ;若cx=0,执行这个指令后(cx)=1,在执行loop s时,(cs)=(cs)-1,这时候(cx)=0.循环停止,向下执行。...
阅读全文 |
评论次数(1) |
浏览次数(467) |
所属类型(汇编作业)
[2008-11-05 14:52] 监测点9.2
第一种:
s:mov cx,0
mov cl,[bx]
jcxz ok
inc bx
第二种:
s:mov ch,0
mov cl,[bx]
jcxz ok
inc bx...
s:mov cx,0
mov cl,[bx]
jcxz ok
inc bx
第二种:
s:mov ch,0
mov cl,[bx]
jcxz ok
inc bx...
阅读全文 |
评论次数(1) |
浏览次数(378) |
所属类型(汇编作业)
[2008-11-05 11:52] 监测点9.1
(1)db 0,0,0
(2)mov [bx],bx
mov [bx+2],cs
(3)cs=0006H,ip=00beH...
(2)mov [bx],bx
mov [bx+2],cs
(3)cs=0006H,ip=00beH...
阅读全文 |
评论次数(1) |
浏览次数(407) |
所属类型(汇编作业)
[2008-11-03 21:22] 实验7
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd
34598...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd
34598...
阅读全文 |
评论次数(1) |
浏览次数(483) |
所属类型(汇编作业)
『 查看更多文章 』