


- [游客] 噢,知道了。 06/08 11:20
- [游客] 0:200开始的这段内存空间才是安全的吧。 06/08 11:16
- [游客] 没问题。 06/08 11:15
- [mess] 答案正确,分析的也不错,博主继续加油啊;) 06/05 17:13
- [yulh] PSP的内容已经补上 谢谢点评 06/02 20:28
- [xiaochong] 总结的不错,继续努力。。。 06/02 19:33
- [xiaochong] 正确! 06/02 19:29
- [xiaochong] 用图片展示很细致,不错。 不过试验3还有第(3)步,查看PSP的内容,博主别忽略了。。。 06/02 18:35
- [xiaochong] 路过。。。 06/02 18:12
- [yulh] 谢谢点评 06/01 19:55
[2009-06-06 12:50] 检测点6.1
1)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序.
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start:mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:mov ax,[bx]
mov cs:[bx],ax ;<----填空
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
2)下面的程序实现依次...
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start:mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:mov ax,[bx]
mov cs:[bx],ax ;<----填空
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
2)下面的程序实现依次...
阅读全文 |
评论次数(2) |
浏览次数(549) |
所属类型(汇编作业)
[2009-06-06 11:33] 第六章 包含多个段的程序 (6.1~6.2)
程序取得所需空间的方法有两种:1在加载程序的时候为程序分配.2程序在执行的过程中想系统申请.
6.1
"DB"的含义是定义 字节型 数据.DB 即Define byte
"DW"的含义是定义 字型 数据.DW 即Define word
"DD"的含义是定义 双字型 数据.DD 即Define dword(double wotd)
6.2
定义方法:
如: DB 0,0,0,0 ;定义后的长度占4个字节.
DW 0,0,0,0 ;定义后的长度占8个字节.
DD 0,0,0,0, ;定义后的...
6.1
"DB"的含义是定义 字节型 数据.DB 即Define byte
"DW"的含义是定义 字型 数据.DW 即Define word
"DD"的含义是定义 双字型 数据.DD 即Define dword(double wotd)
6.2
定义方法:
如: DB 0,0,0,0 ;定义后的长度占4个字节.
DW 0,0,0,0 ;定义后的长度占8个字节.
DD 0,0,0,0, ;定义后的...
阅读全文 |
评论次数(1) |
浏览次数(489) |
所属类型(汇编语言(王爽)笔注)
[2009-06-02 22:42] 实验4
1)编程,向内存0:200~0:23f依次传送0~63(3fh).
分析:
向内存0:200~0:23f依次传送0~63(3fh).
可以知道写入方向为0:200~0:23f内存区域
所以可以设定段地址为0,可以用DS来存放,偏移地址范围200h~23fh
23fh-200h正好是64个内存字节单元,要送入的数据是0~63(3fh). 所以是把0~63个数字送入64个内存字节单元
多次传送可以用LOOP来循环.
下面是代码:
assume cs:code
code segment...
分析:
向内存0:200~0:23f依次传送0~63(3fh).
可以知道写入方向为0:200~0:23f内存区域
所以可以设定段地址为0,可以用DS来存放,偏移地址范围200h~23fh
23fh-200h正好是64个内存字节单元,要送入的数据是0~63(3fh). 所以是把0~63个数字送入64个内存字节单元
多次传送可以用LOOP来循环.
下面是代码:
assume cs:code
code segment...
阅读全文 |
评论次数(1) |
浏览次数(506) |
所属类型(汇编作业)
[2009-06-02 18:55] 第五章 [BX]和LOOP指令(5.1~5.8)
要完整的描述一个内存单元,需要两种信息:
1)内存单元地址;
2)内存单元长度;
如:mov ax,[0]
分析:
0表示内存单元偏移地址,段地址默认在DS(段寄存器)中.
ax位16位寄存器可存放2个字节,ax给出了内存单元长度2字节.
当mov执行后把偏移地址为0和偏移地址为1的内存单元的内容送入AX.
AH存放偏移地址为1的内存单元的内容,
AL存放偏移地址为0的内存单元的内容.
mov al,[0]
...
1)内存单元地址;
2)内存单元长度;
如:mov ax,[0]
分析:
0表示内存单元偏移地址,段地址默认在DS(段寄存器)中.
ax位16位寄存器可存放2个字节,ax给出了内存单元长度2字节.
当mov执行后把偏移地址为0和偏移地址为1的内存单元的内容送入AX.
AH存放偏移地址为1的内存单元的内容,
AL存放偏移地址为0的内存单元的内容.
mov al,[0]
...
阅读全文 |
评论次数(0) |
浏览次数(843) |
所属类型(汇编语言(王爽)笔注)
[2009-06-02 18:02] 第四章 第一个程序(4.1~4.9)
4.1
学习汇编常用工具
MASM for DOS 内带DOS镜象
http://www.sharej.com/topic/15379/
Microsoft Virtual PC
http://www.sharej.com/topic/14151/
WINIMAGE 8.10.8100
http://www.sharej.com/topic/14150/
FloppyWriter
http://www.sharej.com/topic/14147/
Floppy Image 2.4.0
http://www...
学习汇编常用工具
MASM for DOS 内带DOS镜象
http://www.sharej.com/topic/15379/
Microsoft Virtual PC
http://www.sharej.com/topic/14151/
WINIMAGE 8.10.8100
http://www.sharej.com/topic/14150/
FloppyWriter
http://www.sharej.com/topic/14147/
Floppy Image 2.4.0
http://www...
阅读全文 |
评论次数(1) |
浏览次数(619) |
所属类型(汇编语言(王爽)笔注)
[2009-06-02 17:40] 实验3
;t1.asm
;#Mode=DOS
;MASMPlus 单文件代码模板 - 纯 DOS 程序
;--------------------------------------------------------------------
;单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.
;编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式
;当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选->创建工程.必须有多个文件
assume c...
;#Mode=DOS
;MASMPlus 单文件代码模板 - 纯 DOS 程序
;--------------------------------------------------------------------
;单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.
;编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式
;当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选->创建工程.必须有多个文件
assume c...
阅读全文 |
评论次数(2) |
浏览次数(520) |
所属类型(汇编作业)
[2009-06-02 14:56] 检测点3.2
1)补全程序使其可以将10000H~1000FH中的8个字,逆向复制到20000H~2000FH中.逆向复制的含义如图3.17 (Page70)
分析:
空栈SS:SP指向 栈底部字单元地址+2 的内存单元,
栈最后一个字节单元地址为000FH,那栈最后一个字单元地址为EH.
所以空栈的(SP)=00EH+2 ,(SP)=0010H
mov ax,1000h
mov ds,ax
MOV AX,2000H
MOV SS,AX
MOV SP,0010H
push [0]
p...
分析:
空栈SS:SP指向 栈底部字单元地址+2 的内存单元,
栈最后一个字节单元地址为000FH,那栈最后一个字单元地址为EH.
所以空栈的(SP)=00EH+2 ,(SP)=0010H
mov ax,1000h
mov ds,ax
MOV AX,2000H
MOV SS,AX
MOV SP,0010H
push [0]
p...
阅读全文 |
评论次数(1) |
浏览次数(582) |
所属类型(汇编作业)
[2009-06-02 14:31] 第三章 寄存器-内存访问(3.6~3.10)
3.6
栈是一种具有特殊访问方式的存储空间。
特殊点在于 进空间的数据 后进先出。
栈的两个基本操作:入栈和出栈。
入栈 是将一个新的元素放到栈顶。
出栈 是从栈顶取出一个元素。
栈的这种操作规则被称为:LIFO(Last In First Out,后进先出)
3.7
入栈和出栈的两个基本指令是PUSH(入栈)和POP(出栈)
入栈和出栈操作都是以字为单位进行的。
8086CPU中的段寄存器SS和寄存器SP ,栈顶的段地址存放在SS中,偏移地址存放在SP中。
任意时刻 SS:SP指向栈顶元素。
P...
栈是一种具有特殊访问方式的存储空间。
特殊点在于 进空间的数据 后进先出。
栈的两个基本操作:入栈和出栈。
入栈 是将一个新的元素放到栈顶。
出栈 是从栈顶取出一个元素。
栈的这种操作规则被称为:LIFO(Last In First Out,后进先出)
3.7
入栈和出栈的两个基本指令是PUSH(入栈)和POP(出栈)
入栈和出栈操作都是以字为单位进行的。
8086CPU中的段寄存器SS和寄存器SP ,栈顶的段地址存放在SS中,偏移地址存放在SP中。
任意时刻 SS:SP指向栈顶元素。
P...
阅读全文 |
评论次数(1) |
浏览次数(531) |
所属类型(汇编语言(王爽)笔注)
[2009-06-01 16:14] 检测点3.1
1)在DEBUG中,用“d 0:0 1f”查看内存内容,结果如下。
0000:0000 70 80 f0 30 ef 60 30 e2-00 80 80 12 66 20 22 60
0000:0010 62 26 e6 d6 cc 2e 3c 3b-ab ba 00 00 26 06 66 88
下面程序执行前,AX=0,BX=0 ,写出每条汇编指令执行完后相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] AX=2662h ;ds=0001h
mov bx,[0001] BX=e626h ;ds=0001h
mov ...
0000:0000 70 80 f0 30 ef 60 30 e2-00 80 80 12 66 20 22 60
0000:0010 62 26 e6 d6 cc 2e 3c 3b-ab ba 00 00 26 06 66 88
下面程序执行前,AX=0,BX=0 ,写出每条汇编指令执行完后相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] AX=2662h ;ds=0001h
mov bx,[0001] BX=e626h ;ds=0001h
mov ...
阅读全文 |
评论次数(1) |
浏览次数(402) |
所属类型(汇编作业)
[2009-06-01 15:01] 第三章 寄存器-内存访问(3.1~3.5)
3.1
一个字节由二个字节组成,一个字节由8bit(二进制)组成,一个地址单元可存放一个字节,即8bit.
CPU中用16位寄存器来存储1个字,高8位存放高位字节,低8位存放低位字节。
字单元,即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。高地址内存单元存放字型数据的高位字,低地址内存单元存放字型数据的低位字。
将起始地址为N的字单元简称为N地址字单元。
3.2
mov可完成两种传送:1,将数据直接送入寄存器。2,将一个寄存器中的内容送入另一个寄存器。
3.3
8686CPU 是16位结构,有16跟数据线,...
一个字节由二个字节组成,一个字节由8bit(二进制)组成,一个地址单元可存放一个字节,即8bit.
CPU中用16位寄存器来存储1个字,高8位存放高位字节,低8位存放低位字节。
字单元,即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。高地址内存单元存放字型数据的高位字,低地址内存单元存放字型数据的低位字。
将起始地址为N的字单元简称为N地址字单元。
3.2
mov可完成两种传送:1,将数据直接送入寄存器。2,将一个寄存器中的内容送入另一个寄存器。
3.3
8686CPU 是16位结构,有16跟数据线,...
阅读全文 |
评论次数(1) |
浏览次数(418) |
所属类型(汇编语言(王爽)笔注)
『 查看更多文章 』