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

我的博客

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

[2007-12-23 16:22] 汇编中断参考大全-汇总

我觉得这些中断也就是个子程序,知道了输入和输出会使用就行了,没有必要去记它,了解中断的根本原理才是重点。不过熟练几个常用的中断还是有用的;-)

中断使用举例:
=====================
键盘输入数字转化成二进制输出到屏幕〔多次调用int21h中断〕 
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=4526&kindId=4140&postId=7094&readSg=1&vs=1

都发上来了,不过还是有些乱,整个目录,用的时候也好查,嘿嘿~

目录:
---------------...
阅读全文 |   作者:mouse | 评论次数(7) | 浏览次数(3083)

[2009-06-10 16:14] 实验14 用栈 完美完成

实验14
以"年/月/日 时:分:秒"格式,显示当前的日期,时间.

; 70是要访问的地址
; 71是要访问的数据

assume cs:code

code segment
s1:db ' ',':',':',' ','/','/'

s4:db 0,2,4,7,8,9        ;从cmos读取数据的地址

start:mov cx,6
      mov ah,2           ;字符属性=2
      mov dh,2           ;字符属性=2
 
      mov di,offset s1
   sa:mov al,cs:...
阅读全文 |   作者:zhenglxd | 评论次数(2) | 浏览次数(1256)

[2009-07-13 17:03] 终于圆满了~课程设计二搞定!

;花了8天60+小时,中间的曲折和艰辛实在是。。。不过还好我挺过来了,一直一直没有放弃,我坚信付出总会有回报的!
assume cs:code
code segment

start:mov ax,cs
      mov es,ax
      mov bx,offset write_floppy
      mov ah,3                      ;write
      mov al,1                      ;total sector
      mov ch,0                      ;track numb...
阅读全文 |   作者:zhenglxd | 评论次数(2) | 浏览次数(1681)

[2009-06-15 12:23] 检测点 15.1

PDF 292页面 检测点15.1
(1)可以精简为:
            pushf
            call dword ptr ds:[0]
理由:默认的IF状态=EI  则int9中断触发的时候 pushf,IF=0,TF=0都

由硬件自动完成了,所以我们要模拟int指令 调用原int9中断例程的时

候 只需要 pushf 然后call dword ptr ds:[0]就可以了

(2)仔细分析上面程序中的主程序,看看有什么潜在问题?
在主程序中,如果执行设置int9中断例程的段地址和偏移地址的指令之间

发生键盘中断,则cpu将转去一个错误的...
阅读全文 |   作者:zhenglxd | 评论次数(1) | 浏览次数(1194)

[2009-06-08 16:54] 检测点 14.1~ 14.2

检测点14.1
(1)编程 ,读取CMOS RAM 2号单元内容
(2)编程,像CMOS 2号单元写入0

assume cs:code

code segment

start:mov al,2
      out 70H,al
      in al,71h

      mov ax,4c00H
      int 21h


code ends

end start  

(2)assume cs:code

code segment

start:mov al,2
      out 70H,al
      out 71H,0
...
阅读全文 |   作者:zhenglxd | 评论次数(2) | 浏览次数(1401)

[2009-06-29 15:04] 自己独立设计的17.3完整程序,输入显示字符窜允许删除,enter键表示输入结束,报错非ASCII显示

;自己独立设计的17.3完整程序,输入显示字符窜允许删除,enter键表示输入结束,报错非ASCII显示

assume cs:code,ss:charstack
charstack segment
 db 1024 dup(0)
 table dw a,b
 a db 'please input some string :',0
 b db 'Warning:can not show it',0
charstack ends

code segment
start: mov ax,charstack
       mov ss,ax
       mov sp,12...
阅读全文 |   作者:zhenglxd | 评论次数(2) | 浏览次数(1888)

[2009-06-16 15:49] 检测点16.1--16.2

检测点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,(a[si])
      add (a[16]),ax
      abc (a[18]),0
      add si,(2)
      loop s
 
      mov ax,4c00h
      int 21h

code ends
en...
阅读全文 |   作者:zhenglxd | 评论次数(4) | 浏览次数(1320)

[2009-06-16 11:14] 试验十五完成的郁闷啊!

;pdf 295 试验15 安装int9中断效果为放开a键时满屏显示A
;TMD完成的郁闷!没抄书上独立完成的,本来代码写完就直接实现,谁知道把cld和std混淆了好好的心情就这么没了!
assume cs:code

code segment
start :

       mov ax,0
       mov es,ax

       push es:[9*4]
       pop  es:[200H]
       push es:[9*4+2]
       pop  es:[202H]
;复制原int9中断程序入口地址 到 0:200H dword单...
阅读全文 |   作者:zhenglxd | 评论次数(2) | 浏览次数(1568)

[2009-07-01 14:57] 试验17 完成!

;功夫不负有心人啊在http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=13489&kindLevel=1&kindId=17296&postId=23304&readSg=1Id=13489&kindId=17298&postId=23408
;这个模拟器下我终于顺利完成了实验17像最后的课程设计2冲刺如果有不会使用这个模拟器的可以来问我
;虽然应为模拟器的问题浪费过许多时间但是我从来没有想到过要放弃希望大家也不要放弃(ps和我一起学的最后的实验17和课程设计2我发现很多人因为模拟器原因放弃了)还是那句话模拟器的问题有不懂...
阅读全文 |   作者:zhenglxd | 评论次数(2) | 浏览次数(1868)

[2009-06-12 08:25] 汇编指令英文缩写对照

1.通用数据传送指令. 
MOV----> move 
MOVSX---->extended move with sign data 
MOVZX---->extended move with zero data 
PUSH---->push 
POP---->pop 
PUSHA---->push all 
POPA---->pop all 
PUSHAD---->push all data 
POPAD---->pop all data 
BSWAP---->byte swap 
XCHG---->exchange 
CMPXCHG---->compare and ...
阅读全文 |   作者:ptr | 评论次数(1) | 浏览次数(1857)

[2011-05-03 12:17] 用自己的方法写的课程设计1

这个是我学习王爽汇编至今为止用的时间最久写的一个程序了,它比较综合,运用到了很多方法和语句,所以我坚持用自己的方法去完成它,哪怕写很久也要自己写,但是幸亏我思考了3天写出来了,哈哈 一直在整理自己的思路。也希望大家在写这个程序的时候不要去看别人写的,实在不行了才去看看人家的思路。
  写这个代码给我带来的启示:在写程序的时候写想好要用到哪些子程序,子程序的参数靠哪些寄存器来传递,哪些参数是必须要有的,哪些可以把它在子程序里面定死,必须要有的也就是一些在不同情况下需要改变的参数,需要在主调程序里面进行改变的,比如我写的时候我就把显示缓存中的颜色给定死了,因为这里用不到他,我们的目的是把内存中的...
阅读全文 |   作者:mahdi_glt | 评论次数(0) | 浏览次数(569)

[2011-02-09 22:30] 王爽《汇编语言》第2版第16章:计算sin(x)  (带图片,带角度检测)

;直接定址表,带角度值的检测
;编写子程序,计算sin(x),x=(0,30,60,90,120,150,180)
;author:chinaljg
;20:42 2011-02-09
;建立查询表
;用ax向子程序传递角度
assume cs:code
code segment
start:
        mov ax,120   ;;用ax向子程序传递角度

        call showsin  ;调用子程序,通过查询表找到sin三角函数的值

        mov ax,4c00h  ;调用dos中断程序返回
        int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...
阅读全文 |   作者:chinaljg | 评论次数(0) | 浏览次数(837)

[2011-05-14 07:26] 实验15 安装新中断例程  松开按键A的时候满屏幕都是A(纯DOS下有用)

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,offset endint9-offset int9
        cld
        r...
阅读全文 |   作者:mahdi_glt | 评论次数(0) | 浏览次数(530)

[2011-05-11 10:58] 0号中断的安装 带测试代码

assume cs:code

code segment
install:mov ax,cs
        mov ds,ax
        mov si,offset do        ;设置源地址指向
        mov ax,0
        mov es,ax
        mov di,200h                 ;设置目的地址
        
        mov cx,offset enddo-offset do
        cld
        rep movsb                     ;安装中断程序

        mov ax,0
        mov es,ax
        mov word ptr es:[0*4],200h
        mov word ptr es:[0*4+2],0 ...
阅读全文 |   作者:mahdi_glt | 评论次数(0) | 浏览次数(511)

[2011-05-13 00:10] 自制数字时钟 需要按alt+enter 开启全屏才能有闪烁效果

assume cs:code
code segment
setting:mov ax,cs
        mov ds,ax
        mov si,offset my_time

        mov ax,20h
        mov es,ax
        mov di,0

        mov cx,offset end_time-offset my_time
        cld
        rep movsb

        mov ax,0
        mov es,ax
        mov word ptr e...
阅读全文 |   作者:mahdi_glt | 评论次数(0) | 浏览次数(499)

[2009-06-23 13:35] 监测点 17.1

'在int 16h中断例程中,一定有设置if=1的指令'这种说法对吗?
答:对,深入思考了下,中断例程后 会把tf,if自动设为0。而int 

16h 是有等待用户输入功能的,并且在没有接受到数据的时候会循

环等待,所以 if位必然要=1,其次int 16h 要调用int 9的用户键

盘输入,所以if 位也必然要=1。...
阅读全文 |   作者:zhenglxd | 评论次数(1) | 浏览次数(1285)

[2009-06-19 09:24] 试验16-匍匐前进终于完成

;PDF 309 实验16
;编写多功能int7ch中断例程,具有清屏,设置前景,背景,上滚一行以及超界示警功能.
;老规矩独立完成的
;这个是完美版的,花了大概。。恩。。8个多小时
;用debug载入内存后直接g, 然后每隔几秒会跳出一种效果来
;al是字符属性参数
;int7cH中断程序安装与 0:200H处
;又是血的教训啊!table和error是从200H处开始算偏移的.
;实在是昏头转向了,居然把初始化循环条件放在循环体内
;话说不知道为啥这个版的没写多个注释我也不知道为什么。。这不像我的风格- -!
;一些心得:设计程序没花我多少时间,但是调试却很费时间不过通...
阅读全文 |   作者:zhenglxd | 评论次数(2) | 浏览次数(1623)

[2011-05-16 23:23] 实验16 使用数据标号编写中断例程

assume cs:code

code segment
;==================中断例程======================
;这段程序将被写入内存
;这里table后面sub的标号在编译的时候会被转换成标号对应的内存偏移地址
;这里的call指令的位移地址等于sub标签处的地址减去call后一条指令的IP地址
;是的程序能够正确的调用子程序,但是安装了之后,call的位置发生变化了,
;由于sub标签的地址仍是以前的那个,导致计算出来的位移不准确,会跳转到
;其他的地方去,为了避免跳转不准备,我们把中断例程都放在程序的开头处
;即第一条指令都在偏移...
阅读全文 |   作者:mahdi_glt | 评论次数(0) | 浏览次数(537)

[2012-10-27 16:23] 检测点2

1.MOV AX,62627     AX=62627
MOV AH,31H         AX=3100H
MOV  AL,23H       AX=3123H
ADD AX,AX         AX=6246H
MOV BX,826CH      BX=826CH
MOV CX,AX          CX=6246H
MOVAX,BX          AX=826CH
ADD AX,BX        AX=04D7H
MOV AL,BH        AX=0482H
MOV AH,BL        AX=6C82H
ADD AH,AH        AX=...
阅读全文 |   作者:zmt1975 | 评论次数(1) | 浏览次数(249)

[2012-10-27 16:48] 检测点2.2

1.00010H到1000FH
2.SA最大2000H,最小1001H...
阅读全文 |   作者:zmt1975 | 评论次数(1) | 浏览次数(257)
页码数(8):  1  2  3  4  5  6  7  8