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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2009-06-13 14:35] 检测点12.1

检测点12.1

(1)

0070:018B

 

(2)

N*4

N*4+2...
阅读全文 | 评论次数(0) | 浏览次数(339) | 所属类型(默认类型)

[2009-06-13 14:32] 检测点1.1

检测点1.1
(1) 13
(2) 1024,0,1023
(3) 8192,1024
(4) 2^30,2^20,2^10
(5) 64,1,16,4
(6) 1,1,2,2,4
(7) 512,256
(8) 二进制...
阅读全文 | 评论次数(1) | 浏览次数(383) | 所属类型(默认类型)

[2009-06-13 14:31] 检测点2.1,2.2

检测点2.1
----------------------
(1)写出每条汇编指令执行后相关寄存器中的值。
第一空:F4A3H
第二空:31A3H
第三空:3123H
第四空:6246H
第五空:826CH
第六空:6246H
第七空:826CH
第八空:04D8H
第九空:0482H
第十空:6C82H
第十一空:D882H
第十二空:D888H
第十三空:D810H
第十四空:6246H


(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。

解答如下:
mov ax,2
add ax,ax
add ax,ax
ad...
阅读全文 | 评论次数(0) | 浏览次数(325) | 所属类型(默认类型)

[2009-06-13 14:29] 检测点3.1,3.2

1)
第一空:2662H
第二空:E626H
第三空:E626H
第四空:2662H
第五空:D6E6H
第六空:FD48H
第七空:2C14H
第八空:0000H
第九空:00E6H
第十空:0000H
第十一空:0026H
第十二空:000CH


(2)
1.指令序列如下:
mov ax,6622h
jmp 0ff0:0100
mov ax,2000h
mov ds,ax
mov ax,[0008]
mov ax,[0002]

2.写出CPU执行每条指令后,CS、IP和相关寄存器中的数值。


指令序列↓ 寄存器→ CS IP DS...
阅读全文 | 评论次数(0) | 浏览次数(609) | 所属类型(默认类型)

[2009-06-13 14:26] 检测点16.1,16.2

下面的程序将code段中a处的8个数据累加,结果存储到b处的dword中,补全程序。
完整程序如下:

assume cs:code

code segment

        a dw 1,2,3,4,5,6,7,8

        b dd 0

start:

        mov si,0

        mov cx,8

s:      mov ax,a[si]

        add word ptr b,ax

        adc word ptr b[2],0

        add si,2

       ...
阅读全文 | 评论次数(0) | 浏览次数(326) | 所属类型(默认类型)

[2009-06-11 22:01] 检测点15.1

检测点15.1
(1):

pushf

call dword ptr ds:[0]

两条指令。

(2)
2)仔细分析上面程序中的主程序,看看有什么潜在的问题?
在主程序中,如果在执行设置int 9中断例程的段地址和偏移地址的指令之间发生了键盘中断,则CPU将转去一个错误的地址执行,将发生错误。
    找出这样的程序段,改写它们,排除潜在的问题。
改正的程序段如下: 
cli 
mov word ptr es:[9*4],offset int9 
mov es:[9*4+2],cs 
sti...
阅读全文 | 评论次数(2) | 浏览次数(412) | 所属类型(默认类型)

[2009-06-11 21:42] 检测点14.1,14.2

检测点14.1
(1)编程:读取CMOS RAM的2号单元的内容。
完整程序如下:

assume cs:code

code segment

start:

        mov al,2

        out 70h,al

        in al,71h            ;此时al中装的是当前时间的‘分’。

 

        mov ax,4c00h

        int 21h

code ends

end start

 

(2) 编程:向CMOS RAM的2号单元写入0。
完整程序如下:
...
阅读全文 | 评论次数(1) | 浏览次数(412) | 所属类型(默认类型)

[2009-06-10 11:08] 检测点6.1

(1)
assume cs:codesg

codesg segment

    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

start:  mov ax,0

    mov ds,ax

    mov bx,0

 

    mov cx,8

s:  mov ax,[bx]

    mov cs:[bx],ax    ;此条指令为所填指令

    add bx,2

    loop s

 

    mov ax,4c00h

    int 21h

...
阅读全文 | 评论次数(0) | 浏览次数(332) | 所属类型(默认类型)

[2009-06-09 10:09] 检测点13.1,13.2

检测点13.1
(1)
答:所能进行的最大转移位移是128。因为是实现loop的功能,那就应当遵守loop的使用规则。
(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
解答完整程序如下:

assume cs:code

data segment

        db 'conversation',0

data ends

code segment

start:

        mov ax,cs

        mov ds,ax

        mov si,offset nr

...
阅读全文 | 评论次数(0) | 浏览次数(345) | 所属类型(默认类型)

[2009-06-05 12:37] 检测点9.1,9.2,9.3

检测点9.1
(1)程序如下: 
assume cs:code 
data segment 
db 00 
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段中应该定义哪些数据: 
(2)程序如下: 
assume cs:code 
data segment 
  dd 12345678...
阅读全文 | 评论次数(2) | 浏览次数(416) | 所属类型(默认类型)
『 查看更多文章 』