


- [deepblue] 好记性不如烂笔头,lz好习惯啊! 07/22 22:09
- [deepblue] 恩,第二题 我写的是 mov [bx+2],cs 如果是 mov [bx+2],code 是 07/22 22:08
- [deepblue] 不错哦! 07/22 21:57
- [deepblue] 恩 ,不错。 07/22 21:55
- [deepblue] 这是 jmp short 标号 形式吗 ,那jmp far ptr 标号呢 07/22 21:54
- [deepblue] 很漂亮 07/22 21:46
- [zh198785] 我的BX没有进行增量操作, 把BX去掉都行, 只是基于类C的写法, 用了[bx]做前缀 07/19 07:44
- [游客] 问下:你在何处对BX进行的增量操作? 07/18 23:40
- [xiaochong] 总结的不错,都是重点的地方,很不错! 07/18 20:08
- [xiaochong] 完全正确,博主继续! 07/18 20:04
[2008-07-22 21:12] 实验9 根据材料编程
在屏幕中间显示消息,可自定义消息文字,及属性个数
assume cs:code
data segment ;字符串及属性定义段,多少个属性就表示有多少行
word1 db "Welcome to the Beijing Olympic Games!" ;字符串内容自定义,程序判断居中
Artibute db 01000010b, 11000010b, 01001010b,00000111b,01110001b ;有多少个属性值就输出多少行在屏幕中央
endn db 11111111b
data ends
va...
assume cs:code
data segment ;字符串及属性定义段,多少个属性就表示有多少行
word1 db "Welcome to the Beijing Olympic Games!" ;字符串内容自定义,程序判断居中
Artibute db 01000010b, 11000010b, 01001010b,00000111b,01110001b ;有多少个属性值就输出多少行在屏幕中央
endn db 11111111b
data ends
va...
阅读全文 |
评论次数(1) |
浏览次数(602) |
所属类型(实验)
[2008-07-22 21:11] 实验8 分析一个奇怪的程序
分析下面的程序, 在运行前思考: 这个程序可以正确返回吗?
运行后再思考: 为什么是这种结果?
通过这个程序加深对相关内容的理解
assume cs:codesg
codesg segment
mov ax,4c00h
int 21h
start: mov ax,0
s:nop
nop
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
s0:jmp short ...
运行后再思考: 为什么是这种结果?
通过这个程序加深对相关内容的理解
assume cs:codesg
codesg segment
mov ax,4c00h
int 21h
start: mov ax,0
s:nop
nop
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
s0:jmp short ...
阅读全文 |
评论次数(1) |
浏览次数(615) |
所属类型(实验)
[2008-07-22 21:07] 检测点 9.3
补全编程, 利用loop指令,实现在内存 2000h段中查找第一个值为0的字节, 找到后,将它的偏移地址存储在dx中.
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
inc cx
inc bx
loop s
ok:dec bx
mov dx,bx
mov ...
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov cl,[bx]
mov ch,0
inc cx
inc bx
loop s
ok:dec bx
mov dx,bx
mov ...
阅读全文 |
评论次数(1) |
浏览次数(604) |
所属类型(汇编作业)
[2008-07-22 21:06] 检测点 9.2
补全程序, 利用jcxz指令, 实现内存2000H段中查找第一个值为0的字节, 找到后,将它的偏移地址存储在dx中
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov ch,0
mov cl,[bx]
jcxz ok
inc bx
jmp shorts
ok:mov dx,bx
mov ax,4c00h
...
assume cs:code
code segment
start:mov ax,2000h
mov ds,ax
mov bx,0
s:mov ch,0
mov cl,[bx]
jcxz ok
inc bx
jmp shorts
ok:mov dx,bx
mov ax,4c00h
...
阅读全文 |
评论次数(1) |
浏览次数(567) |
所属类型(汇编作业)
[2008-07-22 21:00] 检测点 9.1
(1) 程序如下
assume cs:code
data segment
db 0
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start
若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令, 在data段中应该定义哪些数据?
(2) 程序如下
assume cs:code
data segment
dd 12345678H
d...
assume cs:code
data segment
db 0
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr [bx+1]
code ends
end start
若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令, 在data段中应该定义哪些数据?
(2) 程序如下
assume cs:code
data segment
dd 12345678H
d...
阅读全文 |
评论次数(1) |
浏览次数(550) |
所属类型(汇编作业)
[2008-07-22 20:59] 第9章 转移指令的原理
可以修改IP, 或同时修改CS和IP的指令统称为转称指令.
只修改IP时, 称为段内转移, 比如: jmp ax.
同时修改CS和IP时, 称为段间转称, 比如: jmp 1000:0
由于转移指令对IP的修改范围不同, 段内转移又分为: 短转移和近转移.
短转移IP的修改范围为 -128~127
近转移IP的修改范围为 -32768 ~ 32767
8086CPU的转移指令分为以下几类
无条件转移指令(如:jmp)
无条件转移指令
循环指令(如:loop)
过程
中断
CPU在执行jmp指令的时候并...
只修改IP时, 称为段内转移, 比如: jmp ax.
同时修改CS和IP时, 称为段间转称, 比如: jmp 1000:0
由于转移指令对IP的修改范围不同, 段内转移又分为: 短转移和近转移.
短转移IP的修改范围为 -128~127
近转移IP的修改范围为 -32768 ~ 32767
8086CPU的转移指令分为以下几类
无条件转移指令(如:jmp)
无条件转移指令
循环指令(如:loop)
过程
中断
CPU在执行jmp指令的时候并...
阅读全文 |
评论次数(1) |
浏览次数(599) |
所属类型(学习笔记)
[2008-07-18 18:18] 实验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,1404...
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,1404...
阅读全文 |
评论次数(3) |
浏览次数(580) |
所属类型(实验)
[2008-07-18 18:16] 第8章 数据处理的两个基本问题
8.1 bx, si, di和bp
只有这4个寄存器可以用在 "[...]" 中来进行内存单元的寻址.
而且只有以4种组合出现: bx和si, bx和di, bp和si, bp和di
只要在[...]中使用寄存器bp, 而指令中没有显性地给出段地址, 段地址就默认在ss中.
--------------------------------------------------------------------------------
8.2 机器指令处理的数据在什么地方
指令在执行前, 所要处理的数据可以在3个地方: CPU内部, 内存, 端...
只有这4个寄存器可以用在 "[...]" 中来进行内存单元的寻址.
而且只有以4种组合出现: bx和si, bx和di, bp和si, bp和di
只要在[...]中使用寄存器bp, 而指令中没有显性地给出段地址, 段地址就默认在ss中.
--------------------------------------------------------------------------------
8.2 机器指令处理的数据在什么地方
指令在执行前, 所要处理的数据可以在3个地方: CPU内部, 内存, 端...
阅读全文 |
评论次数(1) |
浏览次数(521) |
所属类型(学习笔记)
[2008-07-17 15:28] 实验6 实践课程中的程序
(2) 编程, 完成问题7.9中的程序
问题7.9 编程, 将datasg段中每个单词的前4个字母改为大写字母
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. replace '
db '4. modify '
datasg ends
...
问题7.9 编程, 将datasg段中每个单词的前4个字母改为大写字母
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. replace '
db '4. modify '
datasg ends
...
阅读全文 |
评论次数(3) |
浏览次数(427) |
所属类型(实验)
[2008-07-17 15:26] 第7章 更灵活的定位内存地址的方法
用'......' 的方式指明数据是以字符的形式给出的.
(1) [idata] 用一个常量来表示地址, 可用于直接定位一个内存单元
(2) [bx] 用一个变量来表示内存地址, 可用于间接定位一个内存单元
(3) [bx+idata] 用一个变量和常量表示地址, 可在一个起始地址的基础上用变量间接定位一个内存单元
(4) [bx+si] 用两个变量表示地址.
(5) [bx+si+idata] 用两个变量和一个常量表示地址....
(1) [idata] 用一个常量来表示地址, 可用于直接定位一个内存单元
(2) [bx] 用一个变量来表示内存地址, 可用于间接定位一个内存单元
(3) [bx+idata] 用一个变量和常量表示地址, 可在一个起始地址的基础上用变量间接定位一个内存单元
(4) [bx+si] 用两个变量表示地址.
(5) [bx+si+idata] 用两个变量和一个常量表示地址....
阅读全文 |
评论次数(1) |
浏览次数(542) |
所属类型(学习笔记)
『 查看更多文章 』