CAll和RET指令都是转移指令,他们都修改IP,或同事修改CS和IP
RET指令:用栈中的数据,修改IP的内容 ,从而实现近转移-128-127字节
retf指令:用栈中的数据,修改CS和IP的内容,从而实现远转移
cpu执行ret时出栈栈中内容 sp+2
cpu执行retf时 先出栈ip内容 sp+2 在出栈cs内容 sp+2
ret相当于POP ip retf相当于 pop ip pop cs
10.2 call指令
cpu执行call指令时,进行两部操作
①:将当前的IP或cs和ip入栈中
②:转移
call指令不能实现段转移,除此之外,call指令实现转...



- [aminggdwh] jcxz ok 应在 inc BX之前,这样就不会改变了BX的值 10/31 14:52
- [dustym] 第二次 修改 assume cs:code,ds:data data segment db ' 10/17 10:29
- [447861996] 独立,强大。 10/13 15:49
- [gyq] 嗯,我来了。 你把程序改对了; 另外,这个程序还有可以改进的地方。 10/10 20:00
- [dustym] 哇,领导你来了 10/10 17:14
- [gyq] 。 10/10 14:41
- [gyq] 结果不对,建议在第一个循环里面初始化bp。 10/10 14:38
- [dustym] 哈哈,知道咯,谢谢你 10/05 23:31
- [447861996] tute字节型 wodr字型 ———————— 写错了吧? 这篇文档中挺多错别字的,希 10/03 13:19
- [dustym] 懂了,哈,谢谢 09/18 12:19
- [dustym] 嗯嗯,知道了,我会加油的,谢谢 08/27 19:22
- [gyq] 建议目前先不要去想外部的题怎么样,先专心把书上的学扎实。 08/27 13:59
- [gyq] 先不着急,把书本上的都理解了,要求实践的东西都实践了,然后以此为基础向后学习。第四章才开始写程序。 08/27 13:57
- [dustym] 开始第四章,进度缓慢哈,书里不懂的问题都懂了,着只是局限性于书里的课后题,外部的题不知道会不会,所以 08/26 18:59
- [gyq] 你学到多少章了?课后题都完成情况如何,都能理解么? 08/26 13:55
[2014-10-17 10:40] 第十章 学习笔记
阅读全文 |
评论次数(0) |
浏览次数(514) |
所属类型(第二月 6~N章)
[2014-10-02 18:30] 第九章
第九章 9.1
操作符 OFFSET
操作符 offset在汇编语言中是由编译器处理的符号,她的功能是(取得标号的偏移地址)
比如
S:MOV AX,BX
MOV SI,OFFEST S ;OFFSET 取到(标号S)的偏移地址发送给SI
MOV DI,OFFEST S0 ;OFFSET 取到(标号S0)的偏移地址发送给DI
MOV AX,CS:[SI] ;OFFSET获取到标号S的地址 发送给AX
MOV CS:[DI],AX ;通过AX转接发送给标号S0
S0:NOP
NOP
JMP : 无条件 跳转指令,可以只修改IP,也可以同时修改...
操作符 OFFSET
操作符 offset在汇编语言中是由编译器处理的符号,她的功能是(取得标号的偏移地址)
比如
S:MOV AX,BX
MOV SI,OFFEST S ;OFFSET 取到(标号S)的偏移地址发送给SI
MOV DI,OFFEST S0 ;OFFSET 取到(标号S0)的偏移地址发送给DI
MOV AX,CS:[SI] ;OFFSET获取到标号S的地址 发送给AX
MOV CS:[DI],AX ;通过AX转接发送给标号S0
S0:NOP
NOP
JMP : 无条件 跳转指令,可以只修改IP,也可以同时修改...
阅读全文 |
评论次数(0) |
浏览次数(648) |
所属类型(第二月 6~N章)
[2014-10-02 18:29] 第八章
第八章8.1
数据处理的两个基本问题
bx、bp.si.di可以用在[...]中来进行内存单元的寻址
bx和si bx和di bp和si bp和di可以单个出现或只能在组合中出现
错误的出现方式:
bx和bp si和di
只要在[...]中使用寄存器bp,而指令没有给出段地址
那么段地址就在默认的ss中,比如:
mov ax,[bp];bp和sp相似
bp和sp的默认寄存器是ss
绝大部分机器指令都是进行数据处理的指令处理大致可以分为三类
:读取 写入 运算
指令执行前,所处理的数据可以在三个地方
:cpu内存 内存 端口
汇编语言中用哪个概念来表达数...
数据处理的两个基本问题
bx、bp.si.di可以用在[...]中来进行内存单元的寻址
bx和si bx和di bp和si bp和di可以单个出现或只能在组合中出现
错误的出现方式:
bx和bp si和di
只要在[...]中使用寄存器bp,而指令没有给出段地址
那么段地址就在默认的ss中,比如:
mov ax,[bp];bp和sp相似
bp和sp的默认寄存器是ss
绝大部分机器指令都是进行数据处理的指令处理大致可以分为三类
:读取 写入 运算
指令执行前,所处理的数据可以在三个地方
:cpu内存 内存 端口
汇编语言中用哪个概念来表达数...
阅读全文 |
评论次数(2) |
浏览次数(487) |
所属类型(第二月 6~N章)
[2014-09-17 22:07] 第八章哦,
第八章
bx、bp.si.di
可以用在[...]中来进行内存单元的寻址
bx和si bx和di bp和si bp和di
可以单个出现或只能在组合中出现
错误的出现方式:bx和bp si和di
只要在[...]中使用寄存器bp,二指令没有给出段地址
那么段地址就在默认的ss中,比如:
mov ax,[bp];bp和sp相似
bp和sp的默认寄存器是ss
绝大部分机器指令都是进行数据处理的指令
处理大致可以分为三类:读取 写入 运算
指令执行前,所处理的数据可以在三个地方
:cpu内存 内存 端口
汇编语言中用哪个概念来表达数据的位置
1、立即数(i...
bx、bp.si.di
可以用在[...]中来进行内存单元的寻址
bx和si bx和di bp和si bp和di
可以单个出现或只能在组合中出现
错误的出现方式:bx和bp si和di
只要在[...]中使用寄存器bp,二指令没有给出段地址
那么段地址就在默认的ss中,比如:
mov ax,[bp];bp和sp相似
bp和sp的默认寄存器是ss
绝大部分机器指令都是进行数据处理的指令
处理大致可以分为三类:读取 写入 运算
指令执行前,所处理的数据可以在三个地方
:cpu内存 内存 端口
汇编语言中用哪个概念来表达数据的位置
1、立即数(i...
阅读全文 |
评论次数(2) |
浏览次数(485) |
所属类型(第二月 6~N章)
[2014-09-10 16:11] 第六章 实验5(2)不对之处望批评指正!
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h
data ends
stack segment
dw 0,0
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0...
data segment
dw 0123h,0456h
data ends
stack segment
dw 0,0
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0...
阅读全文 |
评论次数(1) |
浏览次数(256) |
所属类型(第二月 6~N章)
[2014-09-10 16:10] 第六章 实验5(1)
assume cs:code, ds:data, ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
...
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
...
阅读全文 |
评论次数(3) |
浏览次数(276) |
所属类型(第二月 6~N章)
[2014-09-06 13:19] 第六章
程序取得所需空间的方法有两种,
1.加载程序时候为程序分配。
2.程序在执行过程中向系统申请。
若要一个程序在被加载的时候所取得所需空间,则必须在源程序中做出说明,我们通过在源程序中定义段来进行内存空间的获取
dw:含义:字型数据
start:程序的入口标号,用end指明了入口在标号start处...
1.加载程序时候为程序分配。
2.程序在执行过程中向系统申请。
若要一个程序在被加载的时候所取得所需空间,则必须在源程序中做出说明,我们通过在源程序中定义段来进行内存空间的获取
dw:含义:字型数据
start:程序的入口标号,用end指明了入口在标号start处...
阅读全文 |
评论次数(0) |
浏览次数(213) |
所属类型(第二月 6~N章)
页码数(1):
1