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

我的博客

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

[2015-11-01 20:18] 实验16 编写包含多个功能子程序的中断例程

点击查看原图
;安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序。
;
; (1)清屏;
; (2)设置前景色;
; (3)设置背景色;
; (4)向上滚动一行。
;
;  入口参数说明如下
;
; (1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;
; (2)对于1、2号功能,用al传递颜色值,(al)∈{0,1,2,3,4,5,6,7}。
;
;
;在进行这个实验时,往往会参考16.4给出的代码(四个子程序和直接定址表功能选择程序)如果安装16.4给出的功能子程序的安装程序习惯采用下面图1安装结构会出问题,问题有两...
阅读全文 | 评论次数(0) | 浏览次数(679) | 所属类型(实验)

[2015-11-01 13:24] 实验15 安装新的int9中断例程

点击查看原图
;安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏幕的“A”,其他的键
;照常处理。
;提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。断码=通码+80h。

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
...
阅读全文 | 评论次数(0) | 浏览次数(751) | 所属类型(实验)

[2015-11-01 13:18] 实验14 访问CMOS RAM

点击查看原图
;编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
;注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元
;外,不要向其他的单元中写入内容,否则将引起一些系统错误。


assume cs:code
code segment
begin:mov bx,9
      mov si,7c0h   ;屏幕中间,年开头,60×12+32×2
                    ;=1984=7c0h
      mov cx,6
      push cx

    s:push cx
      mov al,bl
      o...
阅读全文 | 评论次数(0) | 浏览次数(617) | 所属类型(实验)

[2015-10-26 15:37] 检测点14.2

编程,用加法和移位指令计算(ax)=(ax)*10
提示:(ax)*10=(ax)*2+(ax)*8

assume cs:code 
code segment 
start:  mov bx,ax
        shl ax,1   ;左移1位(ax)=(ax)*2
        mov cl,3
        shl bx,cl       ;左移3位(bx)=(ax)*8
        add ax,bx       ;(ax)=(ax)*2+(ax)*8
        mov ax,4c00h 
        int 21h 
code ends  ...
阅读全文 | 评论次数(0) | 浏览次数(576) | 所属类型(汇编作业)

[2015-10-26 15:30] 检测点14.1

(1)编程,读取CMOS RAM的2号单元内容。 
assume cs:code 
code segment 
start:  mov al,2        ;赋值al 
        out 70h,al      ;将al送入端口70h 
        in al,71h       ;从端口71h处读出单元内容 
        mov ax,4c00h 
        int 21h 
code ends 
end start

(2)编程,向CMOS RAM的2号单元写入0。 
assume cs:code 
code segment 
start...
阅读全文 | 评论次数(0) | 浏览次数(565) | 所属类型(汇编作业)

[2015-10-26 15:25] 检测点13.2

判断下面说法的正误:
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。
答:错误,FFFF:0处是各类ROM的存储空间,其内容无法改变。
(2)int 19h中断例程,可以由DOS提供。
答:错误,先调用int 19h,后启动DOS。...
阅读全文 | 评论次数(0) | 浏览次数(600) | 所属类型(汇编作业)

[2015-10-26 15:21] 检测点13.1

(1)32768

注:mov bx,offset s - offset se 
这里s<se,所以理论上bx取负,有符号数有一位用于符号位,数值范围是:-32768~-?(取决于s和se标号之间语句长度),则最大转移位移取绝对值32768(真实值要比32768还小因为s和se标号之间语句长度是大于0的,无论如何它要比65500这个数小近一半)。...
阅读全文 | 评论次数(0) | 浏览次数(553) | 所属类型(汇编作业)

[2015-10-24 17:34] 实验13 编写、应用中断例程

(3)下面的程序,分别在屏幕的第2、4、6、8行显示4句英文诗,补全程序。
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

  start:mov ax,cs
   ...
阅读全文 | 评论次数(0) | 浏览次数(583) | 所属类型(实验)

[2015-10-24 17:33] 实验12 编写0号中断的处理程序

点击查看原图
;编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串"divide error!",然后返回到DOS

assume cs:code
code segment
 begin:mov ax,cs        ;设置ds:si指向源地址
       mov ds,ax
       mov si,offset do0

       mov ax,0         ;设置es:di指向目标地址
       mov es,ax
       mov di,200h
    
       mov cx,offset do0end-offset do0 ...
阅读全文 | 评论次数(0) | 浏览次数(515) | 所属类型(实验)

[2015-10-24 17:26] 实验11 编写子程序

;编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母,描述如下。
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:si指向字符串首地址
assume cs:codesg
datasg segment
  db"Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
  begin:mov ax,datasg
        mov ds,ax
        mov si,0
        call...
阅读全文 | 评论次数(0) | 浏览次数(565) | 所属类型(实验)
『 查看更多文章 』