汇编网首页登录博客注册
unixandlinux的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
友情链接

[2023-06-27 18:53] 第10章 检测点 10.5

检测点 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...
阅读全文 | 评论次数(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)...
阅读全文 | 评论次数(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
               ...
阅读全文 | 评论次数(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 指令,...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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 彩色字符模式下,显示器可以显示 ...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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)。
另外,必需在程序未尾,能够通过一定的手段判断出“程...
阅读全文 | 评论次数(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,...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(0) | 浏览次数(126) | 所属类型(汇编作业)
页码数(7):  1  2  3  4  5  6  7