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

我的博客

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

[2008-07-16 14:51] 检测点17.1

检测点17.1 
“在int 16h中断例程中,一定有设置IF=1的指令。”这种说法对吗?
对,因为在16h号中断中还要响应9号中断.
如:书中的例子就可以说明问题,运行下面程序,在没有任何键盘输入的情况下程序在执行完int 16h指令后就会处于等待键盘操作的状态,直到有键盘输入,程序才运行退出。
;17.asm
assume cs:code 
code segment
start: mov ah,0
       int 16h
mov bx,0b800h
mov es,bx
mov es:[0],al
mov es:[8],al

       mov ah,1...
阅读全文 | 评论次数(1) | 浏览次数(1043) | 所属类型(汇编作业)

[2008-07-14 13:11] 实验16(2)(;中断中的第一条指令起点 和 安装程序的起点一致,所以可以直接使用直接定址表)

assume cs:code 
code segment 
int7c:jmp short int7c_set    ;中断中的第一条指令起点 和 安装程序的起点一致,所以可以直接使用直接定址表
table dw sub1,sub2,sub3,sub4 
int7c_set:push bx 
          cmp ah,3 
          ja int7c_exit 
      mov bh,0 
      mov bl,ah 
      add bx,bx 
      call word ptr table[bx] 
int7c_exit:pop b...
阅读全文 | 评论次数(3) | 浏览次数(1083) | 所属类型(汇编作业)

[2008-07-14 13:07] 实验16(1)(;中断中的第一条指令起点 和 安装程序的起点不要一致,)

;实验16,安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序:
(1)清屏(2)设置前景色(3)设置背景色(4)向上滚动一行
入口参数说明:
(1)用ah寄存器传递功能号:0表示清屏1表示设置前景色2表示设置背景色3表示向上滚动一行
(2)对于2、1号功能,用al传送颜色值,(al)属于{0,1,2,3,4,5,6,7}
;s16.asm
assume cs:code
code segment
  start:
    mov ax,cs
    mov ds,ax
    mov si,offset int7c
    mov ax,0
    mo...
阅读全文 | 评论次数(3) | 浏览次数(1299) | 所属类型(汇编作业)

[2008-07-10 12:57] 检测点16.1

检测点16.1
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 b,ax   ;warning A4057: Illegal size for operand
     ;adc b[2],0    ;warning A4057:Illegal size for operand
     add word ptr b,ax
     adc word ptr b...
阅读全文 | 评论次数(1) | 浏览次数(1031) | 所属类型(汇编作业)

[2008-07-10 11:34] 实验15

;s15.asm实验15,安装新的int 9中断例程。
;功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏幕的“A”;其他的键照常处理。
;提示:按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。断码=通码+80H。
;我的系统是Windows XP,安装程序在开始调试时使用cmd.exe环境此程序运行不成功。经过在论坛浏览(这已经成为我的自学的习惯了,遇问题先到论坛找寻)。http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1016&qkSg=2&qID=6078有阐述
;此...
阅读全文 | 评论次数(1) | 浏览次数(943) | 所属类型(汇编作业)

[2008-07-04 11:37] 检测点15.1

(1)可以精简为:
pushf
call dword ptr ds:[0]
两条指令。
(2)仔细分析上面程序中的主程序,看看有什么潜在的问题?
在主程序中,如果在执行设置int 9中断例程的段地址和偏移地址的指令之间发生了键盘中断,则CPU将转去一个错误的地址执行,将发生错误。
    找出这样的程序段,改写它们,排除潜在的问题。
提示:注意sti和cli指令的用法。
改写方法:在pop ds:[2]指令后加入一条cli指令,并在mov es:[9*4+2],cs指令后加入一条sti指令即可。
完整的程序如下:
;检测点15.1
assume cs:code
stac...
阅读全文 | 评论次数(1) | 浏览次数(1046) | 所属类型(汇编作业)

[2008-07-03 12:58] 实验14

;实验14
;编写以"年/月/日 时:分:秒"的格式,显示当前的日期、时间。
assume cs:code,ds:data
data segment
  db '00/00/00 00:00:00','$'
data ends
code segment
  start:
    mov ax,data 
    mov ds,ax
    mov si,0
    ;年9/
    mov al,9
    out 70h,al
    in al,71h
    mov ah,al
    mov cl,4
    shr ah,cl
    and al...
阅读全文 | 评论次数(3) | 浏览次数(859) | 所属类型(汇编作业)

[2008-07-03 12:57] 检测点14.2

;检测点14.2
;编程:用加法和移位指令计算(ax)=(ax)*10
;提示:(ax)*10=(ax)*2+(ax)*8
assume cs:code
code segment
  start:
        mov ax,1000h
        mov dx,ax
        shl dx,1            ;(ax)=(ax)*2
        mov cl,3
        shl ax,cl           ;(ax)=(ax)*8
        add ax,dx           ;(ax)=(ax)*10

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

[2008-07-03 12:56] 检测点14.1;(1);(2)

;检测点14.1
;(1)编程:读取CMOS RAM的2号单元的内容。
;(2)编程:向CMOS RAM的2号单元写入0。
;(1)
assume cs:code
code segment
start:
  mov ax,0
  mov al,2
  out 70h,al
  in al,71h

  mov ah,al
  mov cl,4
  shr ah,cl
  and al,00001111b
  push ax
  mov ax,0b800h
  mov es,ax
  mov di,12*160+30*2
  pop ax
  add a...
阅读全文 | 评论次数(1) | 浏览次数(759) | 所属类型(汇编作业)

[2008-07-02 18:18] 真想念学生时代!

真想念学生时代!
这两天工作忙,有点撑不住了。
看见“学习动态”栏目充满活力,
努力,今天总算通过了13章。
少许欣慰。(-.-)
。。。
刚刚浏览了今天提交的“汇编作业”看到网友的评价,
原本有点阴雨的心情由阴转晴!
谢谢回应网友的支持和鼓励!
.........
阅读全文 | 评论次数(0) | 浏览次数(774) | 所属类型(默认类型)
『 查看更多文章 』