- [zyc969] 写第二空时的思维是正确的,但第一空是错误的,第二空必须用到第一空的数据,所以第二空也是错的。 我十 05/20 22:00
- [tomato] 两道题都做错了? 认真态度有待提高啊! 05/20 20:57
- [tomato] 是的,这本书就是要一字一句地读才行。 05/18 22:54
- [zyc969] 嗯,明白了。 05/18 13:46
- [tomato] 应该是第二道题做错了。 05/17 08:57
- [tomato] 学习质量第一。 05/15 23:22
- [tomato] 对了,博主的博客中没有动态显示,博主可以观察一下其它学习者的学习博客,好像是参加了汇编语言学习活动的 05/13 23:20
- [tomato] 做的没问题,不过,这才是第一章,当然还是比较简单的,虽然后面的章节也不难,难的是是否能够一直坚持下去 05/13 23:19
[2007-12-23 16:22] 汇编中断参考大全-汇总
中断使用举例:
=====================
键盘输入数字转化成二进制输出到屏幕〔多次调用int21h中断〕
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=4526&kindId=4140&postId=7094&readSg=1&vs=1
都发上来了,不过还是有些乱,整个目录,用的时候也好查,嘿嘿~
目录:
---------------...
[2009-06-10 16: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:...
[2009-07-13 17:03] 终于圆满了~课程设计二搞定!
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...
[2009-06-15 12:23] 检测点 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将转去一个错误的...
[2009-06-08 16:54] 检测点 14.1~ 14.2
(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
...
[2009-06-29 15:04] 自己独立设计的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...
[2009-06-16 15:49] 检测点16.1--16.2
下面的程序将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...
[2009-06-16 11:14] 试验十五完成的郁闷啊!
;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单...
[2009-07-01 14:57] 试验17 完成!
;这个模拟器下我终于顺利完成了实验17像最后的课程设计2冲刺如果有不会使用这个模拟器的可以来问我
;虽然应为模拟器的问题浪费过许多时间但是我从来没有想到过要放弃希望大家也不要放弃(ps和我一起学的最后的实验17和课程设计2我发现很多人因为模拟器原因放弃了)还是那句话模拟器的问题有不懂...
[2009-06-12 08:25] 汇编指令英文缩写对照
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 ...
[2011-05-03 12:17] 用自己的方法写的课程设计1
写这个代码给我带来的启示:在写程序的时候写想好要用到哪些子程序,子程序的参数靠哪些寄存器来传递,哪些参数是必须要有的,哪些可以把它在子程序里面定死,必须要有的也就是一些在不同情况下需要改变的参数,需要在主调程序里面进行改变的,比如我写的时候我就把显示缓存中的颜色给定死了,因为这里用不到他,我们的目的是把内存中的...
[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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...
[2011-05-14 07:26] 实验15 安装新中断例程 松开按键A的时候满屏幕都是A(纯DOS下有用)
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...
[2011-05-11 10:58] 0号中断的安装 带测试代码
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 ...
[2011-05-13 00:10] 自制数字时钟 需要按alt+enter 开启全屏才能有闪烁效果
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...
[2009-06-23 13:35] 监测点 17.1
答:对,深入思考了下,中断例程后 会把tf,if自动设为0。而int
16h 是有等待用户输入功能的,并且在没有接受到数据的时候会循
环等待,所以 if位必然要=1,其次int 16h 要调用int 9的用户键
盘输入,所以if 位也必然要=1。...
[2009-06-19 09:24] 试验16-匍匐前进终于完成
;编写多功能int7ch中断例程,具有清屏,设置前景,背景,上滚一行以及超界示警功能.
;老规矩独立完成的
;这个是完美版的,花了大概。。恩。。8个多小时
;用debug载入内存后直接g, 然后每隔几秒会跳出一种效果来
;al是字符属性参数
;int7cH中断程序安装与 0:200H处
;又是血的教训啊!table和error是从200H处开始算偏移的.
;实在是昏头转向了,居然把初始化循环条件放在循环体内
;话说不知道为啥这个版的没写多个注释我也不知道为什么。。这不像我的风格- -!
;一些心得:设计程序没花我多少时间,但是调试却很费时间不过通...
[2011-05-16 23:23] 实验16 使用数据标号编写中断例程
code segment
;==================中断例程======================
;这段程序将被写入内存
;这里table后面sub的标号在编译的时候会被转换成标号对应的内存偏移地址
;这里的call指令的位移地址等于sub标签处的地址减去call后一条指令的IP地址
;是的程序能够正确的调用子程序,但是安装了之后,call的位置发生变化了,
;由于sub标签的地址仍是以前的那个,导致计算出来的位移不准确,会跳转到
;其他的地方去,为了避免跳转不准备,我们把中断例程都放在程序的开头处
;即第一条指令都在偏移...
[2012-10-27 16:23] 检测点2
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=...
[2012-10-27 16:48] 检测点2.2
2.SA最大2000H,最小1001H...