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
codesg segment
start...


- [qq93324030] 第二题你的解释不对。 应该是16的倍数,所以选272 10/02 05:41
- [游客] 不错,温故而知新。 12/05 10:32
- [游客] 标志寄存器入栈 11/24 13:26
- [游客] 个人走向世界的一个途径 呵呵 说的有点严重了 其实我觉得就是督促和检验自己并锻炼自信的过程。 11/22 19:38
- [shunqiziranhao] 意义在这里啊 11/18 18:28
- [shunqiziranhao] 哦,那努力了 11/18 18:26
- [younggay] 如果从你现在开始,从汇编开始,踏踏实实的学专业,前途无量。呵呵 11/18 13:42
- [younggay] 如果你不按照学习要求贴出来,你怎么交流呢?如果你自己认为正确的思路是有偏差的,及时表现出来,大家也有 11/18 13:35
[2009-11-26 21:35] 实验6
阅读全文 |
评论次数(0) |
浏览次数(533) |
所属类型(汇编作业)
[2009-11-25 18:07] 实验5 编写、调试具有多个段的程序
(1)
①.保持不变
②.cs=1416h,ss=1415h,ds=1414h
③.X-2,X-1
(2)
1.保持不变
2.cs=1416,ss=1415,ds=1414
3.X-2,X-1
4.N+16(字节)
(3)
1.保持不变
2.cs=1414,ss=1418,ds=1417
3.X+3,X+4
(4)
答:第3个仍然可以正确执行。因为如果把end指令后的标号start去掉后,编译器便会自动以'从上向下'的顺序进行编译执行源程序。
(5)完整程序如下: ...
①.保持不变
②.cs=1416h,ss=1415h,ds=1414h
③.X-2,X-1
(2)
1.保持不变
2.cs=1416,ss=1415,ds=1414
3.X-2,X-1
4.N+16(字节)
(3)
1.保持不变
2.cs=1414,ss=1418,ds=1417
3.X+3,X+4
(4)
答:第3个仍然可以正确执行。因为如果把end指令后的标号start去掉后,编译器便会自动以'从上向下'的顺序进行编译执行源程序。
(5)完整程序如下: ...
阅读全文 |
评论次数(0) |
浏览次数(493) |
所属类型(汇编作业)
[2009-11-25 16:42] 检测点6.1
(1)
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 ...
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 ...
阅读全文 |
评论次数(0) |
浏览次数(479) |
所属类型(汇编作业)
[2009-11-25 02:19] 第6章汇编测试题目
在Intel8086环境下,下列说法合理的是___。
1、 汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。
显然错误。
2、 一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。
应该是段基址吧。
3、 如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。
需要用返回语句告诉cpu在哪里返回,所以这个正确。
4、 用DW和DD定义进行的数据,只能够以字为单位访问。
可以以字节进行访问。
答案③。
...
1、 汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。
显然错误。
2、 一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。
应该是段基址吧。
3、 如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。
需要用返回语句告诉cpu在哪里返回,所以这个正确。
4、 用DW和DD定义进行的数据,只能够以字为单位访问。
可以以字节进行访问。
答案③。
...
阅读全文 |
评论次数(1) |
浏览次数(912) |
所属类型(汇编作业)
[2009-11-24 23:55] 实验4 [BX]和loop的使用
(1) 编程,向内存0:200~0:23F依次传送数据0~63(3FH)。
程序如下:
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bx,0
mov dl,0
mov cx,40h
s: mov [bx],dl
inc dl
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends
end
(2...
程序如下:
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax
mov bx,0
mov dl,0
mov cx,40h
s: mov [bx],dl
inc dl
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends
end
(2...
阅读全文 |
评论次数(0) |
浏览次数(530) |
所属类型(汇编作业)
[2009-11-24 11:26] 实验二
2.实验任务
(1)使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
ax=5BEAH
ax=5CCAH
bx=30F0H
bx=6025H
sp=00FEH 220FEH 5CCAH
sp=00FCH 220FCH 6025H
sp=00FEH 6025H
sp=0100H 5CCAH
sp=00FEH 220FEH 30F0H
sp=00FCH 220FCH 2F35H
(2)仔细观察图3.19的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生改...
(1)使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
ax=5BEAH
ax=5CCAH
bx=30F0H
bx=6025H
sp=00FEH 220FEH 5CCAH
sp=00FCH 220FCH 6025H
sp=00FEH 6025H
sp=0100H 5CCAH
sp=00FEH 220FEH 30F0H
sp=00FCH 220FCH 2F35H
(2)仔细观察图3.19的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生改...
阅读全文 |
评论次数(1) |
浏览次数(673) |
所属类型(汇编作业)
[2009-11-24 10:59] 检测点3.2
(1)
mov ax,1000h
mov ds,ax
mov ax,2000h ;设置堆栈段和栈顶
mov ss,ax
mov sp,0010h
push [0]
push [2]
push [4]
push [6]
push [8]
push [a]
push [c]
push [e]
(2)
mov ax,2000h
mov ds,ax
mov ax,1000h
mov ss,bx
mov sp,0h
pop [e]
pop [c]
pop [a]
pop [8]
pop [6]...
mov ax,1000h
mov ds,ax
mov ax,2000h ;设置堆栈段和栈顶
mov ss,ax
mov sp,0010h
push [0]
push [2]
push [4]
push [6]
push [8]
push [a]
push [c]
push [e]
(2)
mov ax,2000h
mov ds,ax
mov ax,1000h
mov ss,bx
mov sp,0h
pop [e]
pop [c]
pop [a]
pop [8]
pop [6]...
阅读全文 |
评论次数(0) |
浏览次数(484) |
所属类型(汇编作业)
[2009-11-24 10:53] 检测点3.1
(1)
AX=2662H
BX=E626H
AX=E626H
AX=2662H
BX=D6E6H
AX=FD48H
AX=2C14H
AX=0000H
AX=00E6H
BX=0000H
BX=0026H
AX=000CH
(2)
①②初始的值cs=2000h ip=0000h ds=1000h ax=0h bx=0h
SA=CS*16+IP=20000h
指令序列及CPU执行每条指令后,CS、IP和相关寄存器中的数值。
1 mov ax,6622h
cs=2000h ip=0003h ds...
AX=2662H
BX=E626H
AX=E626H
AX=2662H
BX=D6E6H
AX=FD48H
AX=2C14H
AX=0000H
AX=00E6H
BX=0000H
BX=0026H
AX=000CH
(2)
①②初始的值cs=2000h ip=0000h ds=1000h ax=0h bx=0h
SA=CS*16+IP=20000h
指令序列及CPU执行每条指令后,CS、IP和相关寄存器中的数值。
1 mov ax,6622h
cs=2000h ip=0003h ds...
阅读全文 |
评论次数(0) |
浏览次数(451) |
所属类型(汇编作业)
[2009-11-24 00:24] 实验一
实验任务
1)
由于只能上传一张图片所以只能列出部分了
(2)
(3)
通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]
d ffff:0005~ffff:000C
此生产日期不能被改变,因为其在ROM中。只读不能修改。
(4)因为A0000H~BFFFFH是显存地址空间,所以在B810:0000
写数据,使计算机根据写入的数据进行ASCII转换,并将转换后且可打印的字符输出到屏幕上。可以观察屏幕右上方,有图形显示。...
1)
由于只能上传一张图片所以只能列出部分了
(2)
(3)
通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]
d ffff:0005~ffff:000C
此生产日期不能被改变,因为其在ROM中。只读不能修改。
(4)因为A0000H~BFFFFH是显存地址空间,所以在B810:0000
写数据,使计算机根据写入的数据进行ASCII转换,并将转换后且可打印的字符输出到屏幕上。可以观察屏幕右上方,有图形显示。...
阅读全文 |
评论次数(0) |
浏览次数(228) |
所属类型(汇编作业)
[2009-11-24 00:00] 检测点2.3
下面的3条指令执行后,CPU几次修改IP?都是什么时候?最后IP中的的值是多少?
解析:mov ax,bx ; IP=IP+2 FIRST
sub ax,ax ; IP=IP+2 SECOND
jmp ax ;首先IP=IP+2 后IP=AX 这里就修改了两次
修改了4次,前两条指令在读取完成以后就会修改IP来指向下一条指令,最后一条指令是跳转指令,除读取完修改IP外,执行完指令还要修改IP(即将ax赋给IP)用来跳转.
跳转指令有两次IP修改
最后IP中的值为ax的值,为0...
解析:mov ax,bx ; IP=IP+2 FIRST
sub ax,ax ; IP=IP+2 SECOND
jmp ax ;首先IP=IP+2 后IP=AX 这里就修改了两次
修改了4次,前两条指令在读取完成以后就会修改IP来指向下一条指令,最后一条指令是跳转指令,除读取完修改IP外,执行完指令还要修改IP(即将ax赋给IP)用来跳转.
跳转指令有两次IP修改
最后IP中的值为ax的值,为0...
阅读全文 |
评论次数(0) |
浏览次数(242) |
所属类型(汇编作业)