附注3
1 向前转
(1)如果disp∈[-128, 127], 则都产生 EB disp(两个字节)
assume cs:code
code segment
s:jmp s;
jmp short s;
jmp near ptr s;
jmp far ptr s;
code ends
end s
产生的机器码
jmp s; EBFE JMP 0000
jmp short s; EBFC JMP 0000
jmp near ptr s; EBFA JMP 0000
jmp far ptr s; ...


- [游客] cx寄存器的值是不是为指令长度? 08/20 18:03
- [qinghao1] 确定第二空 debug加载程序mov ax,cs; 地址0000 u 一下,,mov ax, 06/08 18:50
- [游客] mov cx,64; 多加1 ------ 没有多加1. 0~3F 就是64个数据。 05/28 16:54
- [游客] 关键是知道了指令的本质过程,读、跳、运行的顺序明确了,后面的很多细节理解起来就顺利多了。 05/25 15:06
- [游客] 观察的的还挺仔细。呵呵 05/25 15:05
- [qinghao1] 恩对的!谢谢. 05/24 18:49
- [游客] (1)宽度是13,但不是13bit。bit是信息最小单位。 其他的没有问题。 05/24 17:30
- [游客] 没问题。 05/24 17:29
- [游客] 分析的没问题。 05/24 17:27
- [游客] 理解正确。 05/24 17:25
[2010-06-09 15:49] 附注3
阅读全文 |
评论次数(0) |
浏览次数(623) |
所属类型(学习笔记)
[2010-05-13 00:19] 指令总结
add ax,1 ; (ax) = (ax)+1
adc ax,1 ; 带进位的加法.
sub ax,1 ; (ax) = (ax)1
cmp ax,bx ; 相当于 sub ax,bx, 但指令只影响标志寄存器,
mov ax,bx ; (ax) = (bx)
mov ax,[bx] ;(ax) = ([bx])
mov [bx],ax ;mov 根据操作数的不同确定操作的倍数。
push ax ; sp=sp-2
mov [sp-2], ax
push [bx] ; bx 似乎不能换,否则提示,必须使用...
adc ax,1 ; 带进位的加法.
sub ax,1 ; (ax) = (ax)1
cmp ax,bx ; 相当于 sub ax,bx, 但指令只影响标志寄存器,
mov ax,bx ; (ax) = (bx)
mov ax,[bx] ;(ax) = ([bx])
mov [bx],ax ;mov 根据操作数的不同确定操作的倍数。
push ax ; sp=sp-2
mov [sp-2], ax
push [bx] ; bx 似乎不能换,否则提示,必须使用...
阅读全文 |
评论次数(0) |
浏览次数(394) |
所属类型(学习笔记)
[2010-05-13 00:05] 伪指令总结(0:03 2010-5-13)
assume 假定段寄存器和程序中段的关联。
用法: assume cs:code[,ds:data[,ss:stack]]
segment
ends(egment)
结合起来定义一个段。
用法:段名 segment
...
段名 ends
end [label] 标记程序结束和指定程序入口(label即为入口地址)。
另:可以直接mov ax,段名 来取得段的地址。
注意:段寄存器不能给地址是8086的硬件特性。...
用法: assume cs:code[,ds:data[,ss:stack]]
segment
ends(egment)
结合起来定义一个段。
用法:段名 segment
...
段名 ends
end [label] 标记程序结束和指定程序入口(label即为入口地址)。
另:可以直接mov ax,段名 来取得段的地址。
注意:段寄存器不能给地址是8086的硬件特性。...
阅读全文 |
评论次数(0) |
浏览次数(361) |
所属类型(学习笔记)
[2010-05-12 23:54] DEBUG 使用进阶
A - Assembe 向内存中汇编指令。
用法:A SA:ADDR
D - Dump 显示指定区间内存内容。
用法:D
D SA:ADDR
D SA:开始ADDR 结束ADDR
E - Enter 向指定内存地址写入数据。
用法:E SA:ADDR (交互方式,输入一个字节空格一下)
E SA:ADDR DATA1 DATA2 DATA3 ... (非交互方式, 每个数据项一个字节)
G - ?? 执行到。。。
R - Register查看寄存...
用法:A SA:ADDR
D - Dump 显示指定区间内存内容。
用法:D
D SA:ADDR
D SA:开始ADDR 结束ADDR
E - Enter 向指定内存地址写入数据。
用法:E SA:ADDR (交互方式,输入一个字节空格一下)
E SA:ADDR DATA1 DATA2 DATA3 ... (非交互方式, 每个数据项一个字节)
G - ?? 执行到。。。
R - Register查看寄存...
阅读全文 |
评论次数(0) |
浏览次数(350) |
所属类型(学习笔记)
[2008-05-27 23:41] 《汇编语言》笔记(23:44 2008-5-27)
DEBUG 功能:
R: 查看,改变CPU寄存器的内容;
D: 查看内存内容,
E: 改写内存内容
U: 将内存的机器指令翻译成汇编指令;
T: 执行一条机器指令;
A: 以汇编指令的格式在内存中写入一条机器指令.
P: 功能和T相似.
R单独用查看全部寄存器.
R{r}(如ax,bx,cx...)改写其内容;
D 地址,查看指定地址的内存内容;如D 1000:1
D 开始地址 结束地址,查看指定范围的内存内容;D 1000:1 F
E 起始地址 数据 数据 数据 数据 ..." 如:E 1000:1 1 2 3 4 5 6
第数据为一个字节的数据;
...
R: 查看,改变CPU寄存器的内容;
D: 查看内存内容,
E: 改写内存内容
U: 将内存的机器指令翻译成汇编指令;
T: 执行一条机器指令;
A: 以汇编指令的格式在内存中写入一条机器指令.
P: 功能和T相似.
R单独用查看全部寄存器.
R{r}(如ax,bx,cx...)改写其内容;
D 地址,查看指定地址的内存内容;如D 1000:1
D 开始地址 结束地址,查看指定范围的内存内容;D 1000:1 F
E 起始地址 数据 数据 数据 数据 ..." 如:E 1000:1 1 2 3 4 5 6
第数据为一个字节的数据;
...
阅读全文 |
评论次数(0) |
浏览次数(417) |
所属类型(学习笔记)
[2008-05-27 01:41] 《汇编语言》笔记(1:45 2008-5-27)
0:53 2008-5-27
jmp 相当于是用来修改CS和IP的MOV,但MOV不行;
jmp 段地址:偏移地址
jmp 指令后跟寄存器(如:AX)表示,修改IP为AX的值;
jmp ax 相当于 mov IP,ax
jmp 3:55 相当于:
mov CS,3
mov IP,55
问题2.3
CS=2000h ip=0000
我的序列:
ax bx cx cs ip next_add
(1)mov ax,6622h ? ? ? 2000h 0000h 20000h
6622h ? ? 2000h 0003h 20003h
(2)jmp 1000:...
jmp 相当于是用来修改CS和IP的MOV,但MOV不行;
jmp 段地址:偏移地址
jmp 指令后跟寄存器(如:AX)表示,修改IP为AX的值;
jmp ax 相当于 mov IP,ax
jmp 3:55 相当于:
mov CS,3
mov IP,55
问题2.3
CS=2000h ip=0000
我的序列:
ax bx cx cs ip next_add
(1)mov ax,6622h ? ? ? 2000h 0000h 20000h
6622h ? ? 2000h 0003h 20003h
(2)jmp 1000:...
阅读全文 |
评论次数(0) |
浏览次数(395) |
所属类型(学习笔记)
[2008-05-27 00:43] 《汇编语言》笔记(0:47 2008-5-27)
mov ax,bx
1000 1001 1101 1000
8 9 d 8 (hex)
0~7FFFH 32K的空间为主存的地址空间
8000~9FFFH 8K的空间为显存地址空间
A000~FFFFH 24K空间为各个ROM的地址空间
8086 CPU 有14个寄存器:
AX,BX,CX,DX 通用寄存器
例AX:15--8 7--0
汇编指令不区分大小写
检测点2.1
(1)
mov ax,62627 ax=F4A3H (62627)d
mov ah,31h ax=31A3h
mov al,23h ax=3123h
add as,ax ax=6246h
...
1000 1001 1101 1000
8 9 d 8 (hex)
0~7FFFH 32K的空间为主存的地址空间
8000~9FFFH 8K的空间为显存地址空间
A000~FFFFH 24K空间为各个ROM的地址空间
8086 CPU 有14个寄存器:
AX,BX,CX,DX 通用寄存器
例AX:15--8 7--0
汇编指令不区分大小写
检测点2.1
(1)
mov ax,62627 ax=F4A3H (62627)d
mov ah,31h ax=31A3h
mov al,23h ax=3123h
add as,ax ax=6246h
...
阅读全文 |
评论次数(2) |
浏览次数(477) |
所属类型(学习笔记)
页码数(1):
1