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

我的博客

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

[2010-03-15 18:04] 检测点17.1

"在int 16h中断例程中,一定有设置IF=1的指令."这种说法对吗?

答:对,因为int 16h中断随时可能产生,为避免发生错误,CS:IP肯定设置有IF=1....
阅读全文 | 评论次数(0) | 浏览次数(393) | 所属类型(汇编作业)

[2010-03-14 20:39] 实验16

安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序.

(1) 清屏;
(2) 设置前景色;
(3) 设置背景色;
(4) 向上滚动一行.

入口参数说明如下.

(1) 用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;
(2) 对于2、3号功能,用al传送颜色值,(al)∈{0,1,2,3,4,5,6,7}.

答:
    assume cs:code

    code segment

  start:push cs
        pop ds
        mov ax,0
        mov es,ax
        mov s...
阅读全文 | 评论次数(0) | 浏览次数(355) | 所属类型(汇编作业)

[2010-03-14 12:05] 检测点16.2

下面的程序将data段中a处的8个数据累加,结果存储到b处的字中,补全程序.

    assume cs:code,es:data

    data segment

      a db 1,2,3,4,5,6,7,8
      b dw 0

    data ends

    code segment

  start:_____________   答:mov ax,data
        _____________       mov ds,ax
        mov si,0
        mov cx,8
      s:mov al,a[si]
        mov ah,0
        ...
阅读全文 | 评论次数(0) | 浏览次数(350) | 所属类型(汇编作业)

[2010-03-14 11:45] 检测点16.1

下面的程序将code段中a处的8个数据累加,结果存储到b处的双字中,补全程序.

    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,_______  答:mov ax,a[si]
        add ______,ax       add word ptr b,ax
        adc ______,0        adc word ptr b[2],0
        add si,______      ...
阅读全文 | 评论次数(0) | 浏览次数(348) | 所属类型(汇编作业)

[2010-03-12 14:01] 实验15

安装一个新的int 9中断例程,功能:在DOS下,按下"A"键后,除非不再松开,如果松开,就显示满屏幕的"A"; 其他的键照常处理.

提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码.断码=通码+80h.

答:
    assume cs:code,ss:stack

    stack segment

        db 128 dup (0)

    stack ends

    code segment

  start:mov ax,stack
        mov ss,ax
        mov sp,128
        mov ax,0
        mov es,a...
阅读全文 | 评论次数(0) | 浏览次数(363) | 所属类型(汇编作业)

[2010-03-12 11:21] 检测点15.1

(1)仔细分析一下上面的int 9中断例程,看看是否可以精简一下?

其实在我们的int 9中断例程中,模拟int指令调用原int 9中断例程的程序段是可以精简的,因为在进入中断例程后,IF和TF都已经置0,没有
必要再进行设置了.对于程序段:

        pushf
        pushf
        pop ax
        and ah,11111100b
        push ax
        popf
        call dword ptr ds:[0]

可以精简为:

        _________________        答:pushf
        _________________            call dword ptr ds:[0]
...
阅读全文 | 评论次数(0) | 浏览次数(367) | 所属类型(汇编作业)

[2010-03-09 15:25] 实验14

编程,以"年/月/日 时:分:秒"的格式,显示当前的日期、时间.

注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元中写入内容,否则将引起一些系统错误.

答:
    assume cs:code

    code segment

        mov si,0
        mov cx,3
        mov dh,9
      s:mov dl,cl
        mov al,dh
        out 70h,al
        in al,71h
        mov ah,al
        mov cl,4
        shr ah,cl
        and al,00001111b
        add ah,3...
阅读全文 | 评论次数(0) | 浏览次数(309) | 所属类型(汇编作业)

[2010-03-09 13:33] 检测点14.2

编程,用加法和位移指令计算(ax)=(ax)*10.

提示,(ax)*10=(ax)*2+(ax)*8.

答:
    assume cs:code

    code segment

        mov ax,2        ;设原数为2
        mov bx,ax
        shl ax,1        ;原数移1位
        mov cl,3
        shl bx,cl        ;原数移3位
        add ax,bx        ;相加得出结果

    code ends

    end...
阅读全文 | 评论次数(0) | 浏览次数(388) | 所属类型(汇编作业)

[2010-03-09 12:49] 检测点14.1

(1)编程,读取CMOS RAM的2号单元的内容.

答:
    assume cs:code

    code segment

        mov al,2
        out 70h,al        ;将2送入地址端口70h
        in al,71h        ;再向数据端口71h读取2号单元的数据

        mov ax,4c00h
        int 21h

    code ends

    end

(2)编程,向CMOS RAM的2号单元写入0.

答:
    assume cs:code

    code segment

        mov al,2
        out 70h,al        ;将...
阅读全文 | 评论次数(0) | 浏览次数(385) | 所属类型(汇编作业)

[2010-03-08 09:50] 实验13

(1)编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处.

参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串首地址.

以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int、iret指令执行前后CS、IP和栈中的状态.

    assume cs:code

    data segment

        db "Welcome to masm!",0

    data ends

    code segment

  start:mov dh,10
        mov dl,10
        m...
阅读全文 | 评论次数(0) | 浏览次数(389) | 所属类型(汇编作业)
『 查看更多文章 』