实验5
(1).
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
...


- [g47603690] 改了改了 谢谢night了 02/15 20:44
- [starrynight] 不是吧?! 赶紧改了吧 02/15 20:35
- [starrynight] 呵呵 博主还是要细心阿 不过,对上面那位游客说的话,我倒是很认同,博主应高更能够理解程序各段之间 02/15 20:33
- [g47603690] 恩恩,这里是笔误,贴上了原来的错误答案。就是多打了一个0害我半天没找到错在哪里,不过已经程序已经更正 02/15 20:31
- [starrynight] 实验5 (1). 2.CPU执行程序,程序返回前,CS=____ SS=_____ DS=_ 02/15 20:27
- [游客] 4.答:如果段中有N个数据,N<16 分配了16个字节的空间 02/15 19:20
- [g47603690] 啊,哈哈懂了,原来上多写了一个零啊。多谢楼上的了。这样的话系统就为他分配了16个字的空间 02/14 19:11
- [游客] 人称的用词,不当之处见量,系统分配的 02/14 18:03
- [游客] stack segment dw 0,0,0,0,0,0,0,0,0 stack end 02/14 18:02
- [mouse] //0到3FH是40个数据,需要循环40H次 ------- 40后面少个h 嘿嘿~ s: 02/14 16:19
[2008-02-15 16:56] 实验5
阅读全文 |
评论次数(5) |
浏览次数(768) |
所属类型(汇编作业)
[2008-02-14 13:56] 检测点6.1
1.填空处应为:POP CS:[BX]
2.assume cs:code
code segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0
start:mov ax,_____ CS
mov ss,ax
mov sp,_____ 12H
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:push [bx]
______ pop cs:[bx] ...
2.assume cs:code
code segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0
start:mov ax,_____ CS
mov ss,ax
mov sp,_____ 12H
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:push [bx]
______ pop cs:[bx] ...
阅读全文 |
评论次数(2) |
浏览次数(602) |
所属类型(汇编作业)
[2008-02-11 17:01] 实验4
1.2)
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov bx,0
mov cx,40h //0到3FH是40个数据,需要循环40H次
s:mov ds:[bx],bx
inc bx
loop s
mov ax,4c00h
int 21H
code ends
end
3)
不会,等想好了再发上来...
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov bx,0
mov cx,40h //0到3FH是40个数据,需要循环40H次
s:mov ds:[bx],bx
inc bx
loop s
mov ax,4c00h
int 21H
code ends
end
3)
不会,等想好了再发上来...
阅读全文 |
评论次数(1) |
浏览次数(722) |
所属类型(汇编作业)
[2008-02-05 20:42] 实验3
执行到 POP AX时就出现错误
原程序代码如下
assume cs:codesg
codesg segment
mov ax,2000h
mov ss,ax
mov sp,0
add sp,4
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00h
int 21h
codesg ends
end
第三个问题是:PSP的头2个字节是CD20,用DEBUG加载,查看PSP的内容
中的PSP的头2个字节是CD20是什么意思?这个问题怎么操作?望知道的...
原程序代码如下
assume cs:codesg
codesg segment
mov ax,2000h
mov ss,ax
mov sp,0
add sp,4
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00h
int 21h
codesg ends
end
第三个问题是:PSP的头2个字节是CD20,用DEBUG加载,查看PSP的内容
中的PSP的头2个字节是CD20是什么意思?这个问题怎么操作?望知道的...
阅读全文 |
评论次数(3) |
浏览次数(812) |
所属类型(汇编作业)
[2008-02-05 16:45] 实验2
1.
mov ax,[0] //ax=5BEA
mov ax,[2] //ax=5CCA
mov bx,[4] //bx=30f0
mov bx,[6] //bx=6029
push ax //sp=00fe 修改的内存地址是:2200:00fe 内容为5cca
push bx //sp=00fc 修改的内存地址是:2200:00fc 内容为6029
pop ax //sp=00fe ax=6029
pop bx //sp=0100 bx=5cca
push [4] ...
mov ax,[0] //ax=5BEA
mov ax,[2] //ax=5CCA
mov bx,[4] //bx=30f0
mov bx,[6] //bx=6029
push ax //sp=00fe 修改的内存地址是:2200:00fe 内容为5cca
push bx //sp=00fc 修改的内存地址是:2200:00fc 内容为6029
pop ax //sp=00fe ax=6029
pop bx //sp=0100 bx=5cca
push [4] ...
阅读全文 |
评论次数(1) |
浏览次数(596) |
所属类型(汇编作业)
[2008-02-05 15:30] 检测3.2
1.
mov ax,1000H
mov ds,ax //定义代码段地址
mov ax,2000H
mov ss,ax
mov sp,10H //初始化栈顶
push [0]
push [2]
……
2.
mov ax,2000H
mov ds,ax //定义代码段地址
mov ax,1000H
mov ss,ax
mov sp,0010H //初始化栈顶
pop [e]
pop [c]
……
想了半天始终不能对PUSH和POP指令有个好的理解,最后这样理解了:首先要初始化...
mov ax,1000H
mov ds,ax //定义代码段地址
mov ax,2000H
mov ss,ax
mov sp,10H //初始化栈顶
push [0]
push [2]
……
2.
mov ax,2000H
mov ds,ax //定义代码段地址
mov ax,1000H
mov ss,ax
mov sp,0010H //初始化栈顶
pop [e]
pop [c]
……
想了半天始终不能对PUSH和POP指令有个好的理解,最后这样理解了:首先要初始化...
阅读全文 |
评论次数(4) |
浏览次数(641) |
所属类型(汇编作业)
[2008-02-04 14:09] 检测3.1
mov ax,1 ax=1H
mov ds,ax ds=1H
mov ax,[0] ax=2662H
mov bx,[1] bx=e626H
mov ax,bx ax=e626H
mov ax,[0] ax=2662H
mov bx,[2] bx=d6e6H
add ax,bx ax=fd48H
add ax,[4] ax=2c14H
mov ax,0 ax=0000H
mov al,[2] ax=00e6H
mov bx,0 bx=0000H
mov bl,[c] bx=0...
mov ds,ax ds=1H
mov ax,[0] ax=2662H
mov bx,[1] bx=e626H
mov ax,bx ax=e626H
mov ax,[0] ax=2662H
mov bx,[2] bx=d6e6H
add ax,bx ax=fd48H
add ax,[4] ax=2c14H
mov ax,0 ax=0000H
mov al,[2] ax=00e6H
mov bx,0 bx=0000H
mov bl,[c] bx=0...
阅读全文 |
评论次数(2) |
浏览次数(568) |
所属类型(汇编作业)
[2008-02-02 14:27] 检测点2.3
下面的3条指令执行后,CPU几次修改IP? 都是在什么时候?最后IP中的值是多少?
mov ax, bx
sub ax, ax
jmp ax
一共4次修改IP
mov ax, bx 读入后IP+3
sub ax, ax 读入后IP+3
jmp ax 读入后IP+2
执行后IP=AX中的值=0H...
mov ax, bx
sub ax, ax
jmp ax
一共4次修改IP
mov ax, bx 读入后IP+3
sub ax, ax 读入后IP+3
jmp ax 读入后IP+2
执行后IP=AX中的值=0H...
阅读全文 |
评论次数(1) |
浏览次数(285) |
所属类型(汇编作业)
[2008-02-02 14:22] 检测点2.2
1.给定段地址为0001H, 仅通过变化偏移地址寻址,CPU的寻址范围为(00010H)到(1000FH)。
2.有一数据存放在内存20000H单元中,现给定段地址为SA, 若想用偏移地址寻到此单元。则SA应满足的条件是:最小为(1001H),最大为(2000H)。
IP的范围是0000H到FFFFH
那么最小值这样求:20000H-FFFFH=10001H 得到的10001H恰不是16的倍数,很明显IP不能取FFFFH,不断减小IP的值,最终IP=FFF0H的时候 得到CS最小值:1001H...
2.有一数据存放在内存20000H单元中,现给定段地址为SA, 若想用偏移地址寻到此单元。则SA应满足的条件是:最小为(1001H),最大为(2000H)。
IP的范围是0000H到FFFFH
那么最小值这样求:20000H-FFFFH=10001H 得到的10001H恰不是16的倍数,很明显IP不能取FFFFH,不断减小IP的值,最终IP=FFF0H的时候 得到CS最小值:1001H...
阅读全文 |
评论次数(2) |
浏览次数(344) |
所属类型(汇编作业)
[2008-02-02 13:30] 检测点2.1
写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 AX=(f4a3h)
mov ah,31h AX=(31a3h)
mov al,23h AX=(3123h)
add ax,ax AX=(6246h)
mov bx,826ch BX=(826ch)
mov cx,ax CX=(6246h)
mov ax,bx AX=(826ch)
add ax,bx AX=(04D8h)
mov al,bh AX=(0482h)
mov ah,bl AX=(6C82h)...
mov ax,62627 AX=(f4a3h)
mov ah,31h AX=(31a3h)
mov al,23h AX=(3123h)
add ax,ax AX=(6246h)
mov bx,826ch BX=(826ch)
mov cx,ax CX=(6246h)
mov ax,bx AX=(826ch)
add ax,bx AX=(04D8h)
mov al,bh AX=(0482h)
mov ah,bl AX=(6C82h)...
阅读全文 |
评论次数(3) |
浏览次数(349) |
所属类型(汇编作业)