(2)完整程序如下:
assume cs:codesg,ss:stacksg,ds:codesg
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: mov ax,stacksg
mov ss,ax
mov ...


- [crazyman] 正确!呵呵 07/01 09:20
- [wsrf] 正确。 06/22 12:47
- [kamjia] 谢谢楼上朋友的解答 06/10 17:55
- [mess] 这个是对的,cpu不可能根据cs ip就知道cs:ip所指向的内存指令的长度,是需要解析才能计算出c 06/09 16:49
- [游客] 我觉得博主说的还是中心不明确。 读取指令后,就会改变IP了,然后才是执行。你写的cpu工作过程说的 06/08 11:14
- [游客] 挺好的文章啊!! 06/08 11:10
- [kamjia] (1)给定段地址为0001H,仅通过变化偏移地址寻址。 偏移地址16位,变化范围为0-FFFFH。 06/07 14:03
- [kamjia] 不好意思,写是确实不是很清楚.我以为把答案发上来就可以了. 谢谢mess的建议. 8086C 06/07 13:48
- [mess] 答案正确,不过配上分析就更好了~ 06/06 16:41
- [mess] 次数和结果都正确,但修改ip的时机描述不清,前两次修改ip为什么不实在读入指令之后,而是执行指令之后 06/06 16:40
[2009-11-28 02:15] 实验6
阅读全文 |
评论次数(0) |
浏览次数(815) |
所属类型(汇编作业)
[2009-11-20 02:09] 实验5
(1)
③第一空:X-2;第二空:X-1
(2)
③第一空:X-2;第二空:X-1
④(N/16+1)*16 [说明:N/16只取整数部分]
原因:在8086CPU架构上,段是以paragraph(16-byte)对齐的。程序默认以16字节为边界对齐,所以不足16字节的部分数据也要填够16字节。
(3)
③第一空:X+3;第二空:X+4
(4)
第(3)题,因为代码段在前,在未用start标记时,编译器会顺序执行程序。
(5)
完整代码如下:
assume cs:code,ss:c
a segment
db 1,2,3,4,5,6...
③第一空:X-2;第二空:X-1
(2)
③第一空:X-2;第二空:X-1
④(N/16+1)*16 [说明:N/16只取整数部分]
原因:在8086CPU架构上,段是以paragraph(16-byte)对齐的。程序默认以16字节为边界对齐,所以不足16字节的部分数据也要填够16字节。
(3)
③第一空:X+3;第二空:X+4
(4)
第(3)题,因为代码段在前,在未用start标记时,编译器会顺序执行程序。
(5)
完整代码如下:
assume cs:code,ss:c
a segment
db 1,2,3,4,5,6...
阅读全文 |
评论次数(0) |
浏览次数(817) |
所属类型(汇编作业)
[2009-11-19 14:33] 检测点6.1 答案
(1)mov cs:[bx],ax
分析:题意为用内存0:0~0:15单元中的内容改写程序中的数据,由于程序中的数据放在代码段中,程序在运行的时候CS中存放代码段的段地址,所以可以从CS中得到它们的段地址。偏移地址由bx控制。本题在所填代码前,已将内存0:0~0:15单元中的内容获取并存放在了ax中,所要只要将ax中的内容传送到cs:[bx]中,故答案为以上内容。
(2)
第一空:cs
第二空:24H
第三空:pop cs:[bx]
分析:
第一空,题目中要求用定义10个字单元来作栈空间,段地址应设为代码段的段地址;
第二空,这空意图为设置栈顶的偏移地址,代码段中前面存...
分析:题意为用内存0:0~0:15单元中的内容改写程序中的数据,由于程序中的数据放在代码段中,程序在运行的时候CS中存放代码段的段地址,所以可以从CS中得到它们的段地址。偏移地址由bx控制。本题在所填代码前,已将内存0:0~0:15单元中的内容获取并存放在了ax中,所要只要将ax中的内容传送到cs:[bx]中,故答案为以上内容。
(2)
第一空:cs
第二空:24H
第三空:pop cs:[bx]
分析:
第一空,题目中要求用定义10个字单元来作栈空间,段地址应设为代码段的段地址;
第二空,这空意图为设置栈顶的偏移地址,代码段中前面存...
阅读全文 |
评论次数(0) |
浏览次数(758) |
所属类型(汇编作业)
[2009-11-18 21:41] 第五章 实验四
(1)
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax ;设置被传送的内存空间的段地址为20H
mov bx,0 ;用bx来存储偏移地址
mov dl,0 ;初始化一个8位的寄存器来存放被传送的数据
mov cx,40h
s: mov [bx],dl
inc dl
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends...
assume cs:codesg
codesg segment
mov ax,0020h
mov ds,ax ;设置被传送的内存空间的段地址为20H
mov bx,0 ;用bx来存储偏移地址
mov dl,0 ;初始化一个8位的寄存器来存放被传送的数据
mov cx,40h
s: mov [bx],dl
inc dl
inc bx
loop s
mov ax,4c00h
int 21h
codesg ends...
阅读全文 |
评论次数(0) |
浏览次数(724) |
所属类型(汇编作业)
[2009-11-03 00:38] 实验2 第2题 答案
(1)根据机器运行情况:我的答案如下:
;ax= 5BEA
;ax= 5CCA
;bx= 30F0
;bx= 6028
;sp=00FE 220FE 5CCA
;sp=00FC 220FC 6028
;sp=00FE 6028
;sp=0100H 5CCA
;sp=00FE 220FE 30F0
;sp=00FC 220FC 2F38
----(以上均为16进制,此题可能因机子软、硬件环境不同而导致答案不统一)
(2)略...
;ax= 5BEA
;ax= 5CCA
;bx= 30F0
;bx= 6028
;sp=00FE 220FE 5CCA
;sp=00FC 220FC 6028
;sp=00FE 6028
;sp=0100H 5CCA
;sp=00FE 220FE 30F0
;sp=00FC 220FC 2F38
----(以上均为16进制,此题可能因机子软、硬件环境不同而导致答案不统一)
(2)略...
阅读全文 |
评论次数(0) |
浏览次数(799) |
所属类型(汇编作业)
[2009-06-30 13:31] 检测点3.2
(1)
mov ax, 2000H
mov ss, ax
mov sp, 0010H
分析:题意为把10000H-1000FH中的8个字,逆序复制到20000H-2000FH中.根据程序,要把20000H-2000FH的内存空间当做栈来处理.然后再向里入栈.这时栈中无元素,ss:sp指向栈最底部单元下面的单元即2000FH的下个字单元20010H,这就需要指定ss与sp的值分别为2000H和0010H.故答案为此.
(2)
mov ax, 1000H
mov ss, ax
mov sp, 0000H
分析:按题意,把10000H...
mov ax, 2000H
mov ss, ax
mov sp, 0010H
分析:题意为把10000H-1000FH中的8个字,逆序复制到20000H-2000FH中.根据程序,要把20000H-2000FH的内存空间当做栈来处理.然后再向里入栈.这时栈中无元素,ss:sp指向栈最底部单元下面的单元即2000FH的下个字单元20010H,这就需要指定ss与sp的值分别为2000H和0010H.故答案为此.
(2)
mov ax, 1000H
mov ss, ax
mov sp, 0000H
分析:按题意,把10000H...
阅读全文 |
评论次数(1) |
浏览次数(1019) |
所属类型(汇编作业)
[2009-06-20 13:35] 检测点3.1
(1)
第一空:2662H
第二空:E626H
第三空:E626H
第四空:2662H
第五空:D6E6H
第六空:FD48H
第七空:2C14H
第八空:0000H
第九空:00E6H
第十空:0000H
第十一空:0026H
第十二空:000CH
(2)
①指令序列如下:
mov ax,6622h
jmp 0ff0:0100
mov ax,2000h
mov ds,ax
mov ax,[0008]
mov ax,[0002]
②
1 mov ax,6622H
此时CS=2000H,IP=0003H,DS=1000H,AX=6622H,BX=...
第一空:2662H
第二空:E626H
第三空:E626H
第四空:2662H
第五空:D6E6H
第六空:FD48H
第七空:2C14H
第八空:0000H
第九空:00E6H
第十空:0000H
第十一空:0026H
第十二空:000CH
(2)
①指令序列如下:
mov ax,6622h
jmp 0ff0:0100
mov ax,2000h
mov ds,ax
mov ax,[0008]
mov ax,[0002]
②
1 mov ax,6622H
此时CS=2000H,IP=0003H,DS=1000H,AX=6622H,BX=...
阅读全文 |
评论次数(1) |
浏览次数(889) |
所属类型(汇编作业)
[2009-06-06 15:34] 检测点2.3
①CPU共4次修改IP
②
第1次:在读入mov ax, bx指令之后;
第2次:在读入sub ax, ax指令之后(sub是减法运算,与add相对);
第3次:在读入jmp ax指令后,还未执行时;
第4次:在执行jmp ax指令后
③
最后IP中的值是0...
②
第1次:在读入mov ax, bx指令之后;
第2次:在读入sub ax, ax指令之后(sub是减法运算,与add相对);
第3次:在读入jmp ax指令后,还未执行时;
第4次:在执行jmp ax指令后
③
最后IP中的值是0...
阅读全文 |
评论次数(4) |
浏览次数(999) |
所属类型(汇编作业)
[2009-06-06 11:35] 检测点2.2
(1)00010H 1000FH
(2)1001H 2000H...
(2)1001H 2000H...
阅读全文 |
评论次数(2) |
浏览次数(572) |
所属类型(汇编作业)
[2009-06-03 21:37] 检测点2.1
1)写出每条汇编指令执行后相关寄存器中的值。
答案如下:
第1空:F4A3H
第2空:31A3H
第3空:3123H
第4空:6246H
第5空:826CH
第6空:6246H
第7空:826CH
第8空:04D8H
第9空:0482H
第10空:6C82H
第11空:D882H
第12空:D888H
第13空:D810H
第14空:6246H
(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
答案如下:
mov ax,2
add ax,ax
add ax,ax
add ax,ax...
答案如下:
第1空:F4A3H
第2空:31A3H
第3空:3123H
第4空:6246H
第5空:826CH
第6空:6246H
第7空:826CH
第8空:04D8H
第9空:0482H
第10空:6C82H
第11空:D882H
第12空:D888H
第13空:D810H
第14空:6246H
(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
答案如下:
mov ax,2
add ax,ax
add ax,ax
add ax,ax...
阅读全文 |
评论次数(2) |
浏览次数(298) |
所属类型(汇编作业)