检测点 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) |
浏览次数(256) |
所属类型(汇编作业)
[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) |
浏览次数(276) |
所属类型(汇编作业)
[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) |
浏览次数(219) |
所属类型(汇编作业)
[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) |
浏览次数(247) |
所属类型(汇编作业)
[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) |
浏览次数(230) |
所属类型(汇编作业)
[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) |
浏览次数(220) |
所属类型(汇编作业)
[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) |
浏览次数(191) |
所属类型(汇编作业)
[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) |
浏览次数(232) |
所属类型(汇编作业)
[2023-05-03 13:20] 第6章 检测点 6.1
检测点 6.1
(1) 以下程序实现依次用内存 0:0~0:15 单元中的内容改写程序中的数据。
思路:将 0000:0000~0000:0015 这 8 个字单元中的数据写入由程序 dw 指令所分配的 8 个字型单元空间中 —— 而不是将 dw 定义的 8 个字型数据存入 0000:0000~0000:0015 单元。
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
...
(1) 以下程序实现依次用内存 0:0~0:15 单元中的内容改写程序中的数据。
思路:将 0000:0000~0000:0015 这 8 个字单元中的数据写入由程序 dw 指令所分配的 8 个字型单元空间中 —— 而不是将 dw 定义的 8 个字型数据存入 0000:0000~0000:0015 单元。
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
...
阅读全文 |
评论次数(0) |
浏览次数(180) |
所属类型(汇编作业)
[2023-04-18 21:25] 第3章 检测点 3.2
检测点 3.2
(1) 补全下面的程序,使其可以将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中。逆序复制的含义如下表所示(表中内存里的数据均为假设)。
地址 数据(十六进制) 地址 数据(十六进制)
10000H 23 20000H 33
10001H 01 20001H 11
10002H 66 20002H FE
10003H 22 20003H 9A
... ...
1000CH FE ...
(1) 补全下面的程序,使其可以将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中。逆序复制的含义如下表所示(表中内存里的数据均为假设)。
地址 数据(十六进制) 地址 数据(十六进制)
10000H 23 20000H 33
10001H 01 20001H 11
10002H 66 20002H FE
10003H 22 20003H 9A
... ...
1000CH FE ...
阅读全文 |
评论次数(0) |
浏览次数(212) |
所属类型(汇编作业)