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

我的博客

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

[2009-04-29 11:07] 检测点17.1

“在int 16h中断例程中,一定有设置IF=1的指令。”这种说法对吗?
  
   对的,因为int 16h中断例程要检测键盘缓冲区中是否有数据,如果IF=0,那就会屏蔽了int 9中断例程...
阅读全文 | 评论次数(1) | 浏览次数(606) | 所属类型(汇编作业)

[2009-04-27 11:25] 实验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:mov ax,cs
      mov ds,ax
      mov si,offse...
阅读全文 | 评论次数(3) | 浏览次数(763) | 所属类型(汇编作业)

[2009-04-24 11:17] 检测点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
       add b,ax
       inc si
       loop s...
阅读全文 | 评论次数(2) | 浏览次数(718) | 所属类型(汇编作业)

[2009-04-24 10:49] 检测点16.1

检测点16.1 

下面和程序将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
         loop s
        ...
阅读全文 | 评论次数(1) | 浏览次数(667) | 所属类型(汇编作业)

[2009-04-22 15:06] 试验15

基本照抄课本,嘻嘻!

assume cs:code
stack segment
db 128 dup (0)
stack ends

code segment
start: mov ax,stack
       mov ss,ax
       mov sp,128
       
       push cs
       pop ds
       
       mov ax,0
       mov es,ax
       
       mov si,offset int9
       mov di,204h
       mov cx...
阅读全文 | 评论次数(1) | 浏览次数(492) | 所属类型(汇编作业)

[2009-04-22 10:34] 检测点15.1

1.仔细分析一下int9中断例程,看看是否可以精简一下? 
pushf
pushf
pop ax
and ah,11111100h
push ax
popf
call dword ptr ds:[0]

可以精简为:
pushf
call dword ptr ds:[0]
两条指令

2.仔细分析上面的程序中的主程序,看看有什么潜在的问题? 
在主程序中,如果在执行设置int9中断例程的段地址和偏移地址的指令之间发生了键盘中断,则CPU将转去一个错误的地址执行,将发生错误。找出这样的程序段,改写它们,排除潜在的问题。

assume cs:code

st...
阅读全文 | 评论次数(1) | 浏览次数(742) | 所属类型(汇编作业)

[2009-04-18 16:38] 实验 14

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

assume cs:code
code segment
    num: db 9,8,7,4,2,0
    des: db '/','/',' ',':',':',' '
    
 start: mov cx,6
        mov bx,offset num
        mov si,offset des
        mov di,0
 start1: push cx
         mov al,cs:[bx]; 端口号送到al
         mov dl,cs:[si]
...
阅读全文 | 评论次数(1) | 浏览次数(715) | 所属类型(汇编作业)

[2009-04-17 10:42] 检测点14.2

编程:用加法和移位指令计算(ax)=(ax)*10 
assume cs:code

code segment
    mov ax,29h
    mov cl,5 ;左移一位相当ax*2
    shl ax,cl
    mov ax,4c00h
    int 21
code ends
end...
阅读全文 | 评论次数(2) | 浏览次数(485) | 所属类型(汇编作业)

[2009-04-17 10:17] 检测点14.1

1.编程:读取CMOS RAM的2号单元内容。
assume cs:code
code segment
    mov al,2
    out 70h,al
    in al,71h
    mov ax,4c00h
    int 21
code ends
end
    
2.编程:向CMOS RAM的2号单元写入0
assume cs:code
code segment
    mov al,2
    out 70h,al
    mov al,0
    out 71h,al
    mov ax,4c00h
    int 21
code...
阅读全文 | 评论次数(1) | 浏览次数(449) | 所属类型(汇编作业)

[2009-04-15 11:46] 实验13-3

3.下面的程序,分别在屏幕的第2、4、6、8行显示四句英文诗,补全程序。
assume    cs:code 
code    segment 
s1:    db 'Good,better,best,','$' 
s2:    db 'Never let it rest,','$' 
s3:    db 'Till good is better,','$' 
s4:    db 'And better,best.','$' 
s:    dw offset s1,offset s2,offset s3,offset s4 
row:    db 2,4,6,8 

sta...
阅读全文 | 评论次数(1) | 浏览次数(432) | 所属类型(汇编作业)
『 查看更多文章 』