检测点 10.5
(1) 下面的程序执行后,ax 中的数值为多少?(注意:用 call 指令的原理来分析结果,而不要在 Debug 中单步跟踪来验证结论;因为对于此程序,在 Debug 中单步跟踪的结果不能代表 CPU 的实际执行结果。)
assume cs:code
stack segment
dw 8 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0
call word ptr ds:[0E...
[2023-06-27 18:53] 第10章 检测点 10.5
阅读全文 |
评论次数(0) |
浏览次数(133) |
所属类型(汇编作业)
[2023-06-27 13:19] 第10章 检测点 10.4
检测点 10.4
下面的程序执行后,ax 中的数值为多少?
内存地址 机器码 汇编指令
1000:0 B8 06 00 mov ax,6
1000:3 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
程序执行过程如下:
1. 在 IP=0 处读取 mov ax,0 指令,由于该指令占用 3 个字节,所以执行 (IP)=(IP)+3=3,然后执行该指令,于是 (ax)...
下面的程序执行后,ax 中的数值为多少?
内存地址 机器码 汇编指令
1000:0 B8 06 00 mov ax,6
1000:3 ff d0 call ax
1000:5 40 inc ax
1000:6 mov bp,sp
add ax,[bp]
程序执行过程如下:
1. 在 IP=0 处读取 mov ax,0 指令,由于该指令占用 3 个字节,所以执行 (IP)=(IP)+3=3,然后执行该指令,于是 (ax)...
阅读全文 |
评论次数(0) |
浏览次数(156) |
所属类型(汇编作业)
[2023-06-27 12:14] 第10章 检测点 10.3
检测点 10.3
下面的程序执行后,ax 中的数值为多少?
内存地址 机器码 汇编指令
1000:0 B8 00 00 mov ax,0
1000:3 9A 09 00 00 10 call far ptr s
1000:8 40 inc ax
1000:9 58 s: pop ax
add ax,ax
pop bx
...
下面的程序执行后,ax 中的数值为多少?
内存地址 机器码 汇编指令
1000:0 B8 00 00 mov ax,0
1000:3 9A 09 00 00 10 call far ptr s
1000:8 40 inc ax
1000:9 58 s: pop ax
add ax,ax
pop bx
...
阅读全文 |
评论次数(0) |
浏览次数(117) |
所属类型(汇编作业)
[2023-06-27 11:11] 第10章 检测点 10.2
检测点 10.2
下面的程序执行后,ax 中的数值为多少?
内存地址 机器码 汇编指令
1000:0 B8 00 00 mov ax,0
1000:3 E8 01 00 call s
1000:6 40 inc ax
1000:7 58 s: pop ax
程序执行过程如下:
1. 在 IP=0 处读取 mov ax,0 指令,由于该指令占用 3 个字节,所以执行 (IP)=(IP)+3=3,然后执行该指令,于是 (ax)=0。
2. 在 IP=3 处读取 call s 指令,...
下面的程序执行后,ax 中的数值为多少?
内存地址 机器码 汇编指令
1000:0 B8 00 00 mov ax,0
1000:3 E8 01 00 call s
1000:6 40 inc ax
1000:7 58 s: pop ax
程序执行过程如下:
1. 在 IP=0 处读取 mov ax,0 指令,由于该指令占用 3 个字节,所以执行 (IP)=(IP)+3=3,然后执行该指令,于是 (ax)=0。
2. 在 IP=3 处读取 call s 指令,...
阅读全文 |
评论次数(0) |
浏览次数(121) |
所属类型(汇编作业)
[2023-06-26 16:03] 第10章 检测点 10.1
检测点 10.1
assume cs:code
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,1000h ; 填数字 1000H
push ax
mov ax,0 ; 填数字 0
push ax
retf
code ends
end start...
assume cs:code
stack segment
db 16 dup (0)
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,1000h ; 填数字 1000H
push ax
mov ax,0 ; 填数字 0
push ax
retf
code ends
end start...
阅读全文 |
评论次数(0) |
浏览次数(115) |
所属类型(汇编作业)
[2023-06-25 17:01] 第9章 实验9 根据材料编程
实验 9 根据材料编程
80×25 彩色字符模式显示缓冲区(以下简称为显示缓冲区)的结构:
内存地址空间中,B8000H~BFFFFH 共 32KB 的空间,为 80×25 彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。
内存地址空间 B8000H~BFFFFH,其段地址为 B0000H,偏移地址范围 8000H~FFFFH;可见偏移地址数量计算方法如下:
FFFFH-8000H+1=7FFFH+1=8000H=8×16³=2³×(2⁴)³=2³×2¹²=2¹⁵=2⁵×2¹⁰=2⁵KB=32KB
在 80×25 彩色字符模式下,显示器可以显示 ...
80×25 彩色字符模式显示缓冲区(以下简称为显示缓冲区)的结构:
内存地址空间中,B8000H~BFFFFH 共 32KB 的空间,为 80×25 彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。
内存地址空间 B8000H~BFFFFH,其段地址为 B0000H,偏移地址范围 8000H~FFFFH;可见偏移地址数量计算方法如下:
FFFFH-8000H+1=7FFFH+1=8000H=8×16³=2³×(2⁴)³=2³×2¹²=2¹⁵=2⁵×2¹⁰=2⁵KB=32KB
在 80×25 彩色字符模式下,显示器可以显示 ...
阅读全文 |
评论次数(0) |
浏览次数(110) |
所属类型(课程实验)
[2023-06-21 06:57] 第9章 实验8 分析一个奇怪的程序
实验 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 s
s1: mov ax...
判断下面程序是否可以正确返回,并分析原因。
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 s
s1: mov ax...
阅读全文 |
评论次数(0) |
浏览次数(131) |
所属类型(课程实验)
[2023-06-20 17:20] 第9章 检测点 9.3
检测点 9.3
补全程序,利用 loop 指令实现在内存 2000H 段中查找第一个值为 0 的字节;找到后,将它的偏移地址存储在 DX 寄存器中。
与检测点 9.2 一样,本题存在三个问题:
1. 当指定的 2000h 段中不存在值为 0 的字节时,程序将陷入 s 标号至“loop s”指令之间的死循环。
2. 程序在两种情况下都应该转移至 ok 标号处,这两种情况是:
(1) 当查找到首个字节值为 0 时。
(2) 当 2000h 段中不存在值为 0 的字节,并且已经查找完段中所有字节后(即 (bx)=FFFFh)。
另外,必需在程序未尾,能够通过一定的手段判断出“程...
补全程序,利用 loop 指令实现在内存 2000H 段中查找第一个值为 0 的字节;找到后,将它的偏移地址存储在 DX 寄存器中。
与检测点 9.2 一样,本题存在三个问题:
1. 当指定的 2000h 段中不存在值为 0 的字节时,程序将陷入 s 标号至“loop s”指令之间的死循环。
2. 程序在两种情况下都应该转移至 ok 标号处,这两种情况是:
(1) 当查找到首个字节值为 0 时。
(2) 当 2000h 段中不存在值为 0 的字节,并且已经查找完段中所有字节后(即 (bx)=FFFFh)。
另外,必需在程序未尾,能够通过一定的手段判断出“程...
阅读全文 |
评论次数(0) |
浏览次数(117) |
所属类型(汇编作业)
[2023-06-14 11:22] 第9章 检测点 9.2
检测点 9.2
补全程序,利用 jcxz 指令实现在内存 2000H 段中查找第一个值为 0 的字节,找到后将它的偏移地址存储在 DX 寄存器中。
assume cs:code
code segment
start: mov ax,2000h
mov ds,ax
mov bx,0
s: ________
________
________
________
jmp short s
ok: mov dx,bx
mov ax,...
补全程序,利用 jcxz 指令实现在内存 2000H 段中查找第一个值为 0 的字节,找到后将它的偏移地址存储在 DX 寄存器中。
assume cs:code
code segment
start: mov ax,2000h
mov ds,ax
mov bx,0
s: ________
________
________
________
jmp short s
ok: mov dx,bx
mov ax,...
阅读全文 |
评论次数(0) |
浏览次数(113) |
所属类型(汇编作业)
[2023-06-08 23:04] 第9章 检测点 9.1
检测点 9.1
(1) 程序如下:
assume cs:code
data segment
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 段中应该定义哪些数据?
答:应该定义至少 3 个字节型数据,并且后两个字节型数据组合成的字数据必须为 0000...
(1) 程序如下:
assume cs:code
data segment
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 段中应该定义哪些数据?
答:应该定义至少 3 个字节型数据,并且后两个字节型数据组合成的字数据必须为 0000...
阅读全文 |
评论次数(0) |
浏览次数(126) |
所属类型(汇编作业)