ret用栈中的数据修改IP来实现近转移.相当于POP IP
retf用栈中的数据修改CS和IP来实现远转移.相当于POP IP,POP CS
call 标号:将当前IP压栈后,转到标号处执行.根据位移进行转移.
call far ptr 标号:相当于PUSH CS,PUSH IP,JMP FAR PTR 标号
call 寄存器
call word ptr 内存单元地址: PUSH IP ,JMP WORD PTR 内存单元地址
call dword ptr 内存单元地址:PUSH CS,PUSH IP,JMP DWORD PTR 内存单元地址
mul乘法指令:mul要...
- [inuyashall] BX可以和ES或SS配套使用么? 09/24 22:42
- [游客] mark 07/23 11:21
- [游客] OK! 07/20 09:24
- [kissbill] 改为inc cx 没有深刻理解loop的执行原理.谢谢 07/19 19:21
- [younggay] 要记住,jmp跳转是基于相对位移的哟。 07/14 15:13
- [younggay] 回答没问题。 07/14 14:58
- [younggay] 回答正确。 07/14 14:57
- [younggay] 回答的不对,你跳转到OK后看看你的bx值对么? 07/14 14:57
- [crazyman] 加油~~ 07/01 09:39
- [crazyman] 程序没问题。程序“丑”不怕,逻辑完善了,程序我们可以慢慢“绣”。 07/01 09:13
[2009-07-22 18:29] 第十章笔记
阅读全文 |
评论次数(1) |
浏览次数(587) |
所属类型(默认类型)
[2009-07-19 19:00] 实验九
assume cs:codesg
data segment
db 'welcome to masm!'
db 02H,24H,71H
data ends
codesg segment
start: mov ax,data
mov ds,ax
mov ax,0B800h
mov es,ax
mov ax,0
mov bx,0
mov di,0
mov cx,3
s1: mov dx,cx
mov cx,16
mov si,0
s: mov al,[si]
mov es:[bx+7bch],al
mov al,[10h+d...
data segment
db 'welcome to masm!'
db 02H,24H,71H
data ends
codesg segment
start: mov ax,data
mov ds,ax
mov ax,0B800h
mov es,ax
mov ax,0
mov bx,0
mov di,0
mov cx,3
s1: mov dx,cx
mov cx,16
mov si,0
s: mov al,[si]
mov es:[bx+7bch],al
mov al,[10h+d...
阅读全文 |
评论次数(1) |
浏览次数(587) |
所属类型(汇编作业)
[2009-07-10 19:57] 检测9.3
assume cs:code
code segment
start: mov ax,2000h
mov ds,ax
mov bx,0
s: mov cl,[bx]
mov ch,0
jcxz ok
inc bx
loop s
ok: dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start...
code segment
start: mov ax,2000h
mov ds,ax
mov bx,0
s: mov cl,[bx]
mov ch,0
jcxz ok
inc bx
loop s
ok: dec bx
mov dx,bx
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(2) |
浏览次数(726) |
所属类型(汇编作业)
[2009-07-10 19:36] 检测点9.2
assume cs:code
code segment
start: mov ax,2000H
mov ds,ax
mov bx,0
s:mov cl,0
mov ch,[bx]
jcxz ok
inc bx
jmp short s
ok: mov dx,bx
mov ax,4c00h
int 21h
code ends
end start...
code segment
start: mov ax,2000H
mov ds,ax
mov bx,0
s:mov cl,0
mov ch,[bx]
jcxz ok
inc bx
jmp short s
ok: mov dx,bx
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(1) |
浏览次数(596) |
所属类型(汇编作业)
[2009-07-10 19:36] 检测点9.1
assume cs:code
1,
data segment
dw 0,0,0
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start
2,
assume cs:code
data segment
dd 12345678H
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov [bx],0
mov [bx+...
1,
data segment
dw 0,0,0
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start
2,
assume cs:code
data segment
dd 12345678H
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov [bx],0
mov [bx+...
阅读全文 |
评论次数(1) |
浏览次数(550) |
所属类型(汇编作业)
[2009-07-10 11:14] 第九章笔记
可以修改IP,或同时修改CS和IP的指令统称为转移指令.
只修改IP时称为段内转移,同时修改CS和IP时称为段间转移.
段内转移又分为:短转移和近转移.
offset是由编译器处理,功能是取得标号处的偏移地址.
jmp 无条件转移;jmp short 标号:转移范围为-128~127
jmp near ptr s
jmp far ptr s(可以同时修改CS和IP).
jmp 十六位寄存器
jmp word ptr 内存单元地址(段内转移)[内存单元地址开始处存放着的一个字为转移的目的地址]
jmp dword ptr 内存单元地址(段间转移)[高位为转移的段地址,低位为转移...
只修改IP时称为段内转移,同时修改CS和IP时称为段间转移.
段内转移又分为:短转移和近转移.
offset是由编译器处理,功能是取得标号处的偏移地址.
jmp 无条件转移;jmp short 标号:转移范围为-128~127
jmp near ptr s
jmp far ptr s(可以同时修改CS和IP).
jmp 十六位寄存器
jmp word ptr 内存单元地址(段内转移)[内存单元地址开始处存放着的一个字为转移的目的地址]
jmp dword ptr 内存单元地址(段间转移)[高位为转移的段地址,低位为转移...
阅读全文 |
评论次数(1) |
浏览次数(542) |
所属类型(默认类型)
[2009-07-01 01:57] 实验七
assume cs:codesg,ds:data
data segment
db '1975','1977','1978','1979','1980','1981','1980','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,118...
data segment
db '1975','1977','1978','1979','1980','1981','1980','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,118...
阅读全文 |
评论次数(1) |
浏览次数(713) |
所属类型(汇编作业)
[2009-06-29 16:07] 第八章笔记
数据处理的两个基本问题:1,数据在什么地方.2,数据的长度.
寻址:
1,在8086CPU中,只有BX,SI,DI,BP四个寄存器,可以用在[...]来进行内存单元的寻址.
2,这四个寄存器,可以单独出现,或者是必须成对出现.bx和si,bx和di,bp和si,bp和di.
3,只要在[...]中使用了bp,而又没有显性的给出段地址,则段地址默认在ss中.
汇编语言中数据的位置:1,立即数;idata,直接包含于汇编指令,执行前在CPU的指令缓冲器中.2,寄存器.3,内存中,用SA(段地址)和EA(偏移地址)结合的办法来寻址.
数据长度如何指明:1,寄存器指明.2,通过X ptr指...
寻址:
1,在8086CPU中,只有BX,SI,DI,BP四个寄存器,可以用在[...]来进行内存单元的寻址.
2,这四个寄存器,可以单独出现,或者是必须成对出现.bx和si,bx和di,bp和si,bp和di.
3,只要在[...]中使用了bp,而又没有显性的给出段地址,则段地址默认在ss中.
汇编语言中数据的位置:1,立即数;idata,直接包含于汇编指令,执行前在CPU的指令缓冲器中.2,寄存器.3,内存中,用SA(段地址)和EA(偏移地址)结合的办法来寻址.
数据长度如何指明:1,寄存器指明.2,通过X ptr指...
阅读全文 |
评论次数(2) |
浏览次数(628) |
所属类型(默认类型)
[2009-06-26 22:37] 实验6
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1,display '
db '2.brows '
db '3.repace '
db '4.modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov...
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1,display '
db '2.brows '
db '3.repace '
db '4.modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov...
阅读全文 |
评论次数(1) |
浏览次数(658) |
所属类型(汇编作业)
[2009-06-26 20:55] 第七章笔记
and指令:把操作对象相应位置置0
or指令:把操作对象相应位置置1
用'...'来指明数据是以字符形式给出,编译器自动转化为ASCII码.
SI和DI是8086CPU中和BX功能相近的寄存器,但是不能分为8位....
or指令:把操作对象相应位置置1
用'...'来指明数据是以字符形式给出,编译器自动转化为ASCII码.
SI和DI是8086CPU中和BX功能相近的寄存器,但是不能分为8位....
阅读全文 |
评论次数(0) |
浏览次数(592) |
所属类型(默认类型)
『 查看更多文章 』