《零基础汇编》外中断篇疑问
外中断,按下esc就可以改变字符串颜色的代码。看了n面视频还是看不太懂,1: MOV WORD PTR ES:,OFFSET INT9 ;9号中断指向新的中断命
MOV ES:,CS ;9号位置指向cs
为什么第一个要加word ptr,第二个又不加?
2:INT9:
PUSH AX
PUSH BX
PUSH ES
IN AL,60H ; 60号端口 中输入的键盘码进入al
PUSHF
PUSHF ;改变标志寄存器后两位
POP BX
AND BH,11111100B
PUSH BX
POPF
CALL DWORD PTR DS:
这儿为什么要用call?跳回原来的ds干嘛?那后面的显示程序不就没法执行了。
3:INC BYTE PTR ES:
这句代码又是怎么回事丫?这个自加1是针对什么?不是es吧,也不是40*2+1后面的吧,应该是cl(表颜色)我以为应该用
inc cl
mov es:,cl
……我是菜鸟仂,现在这学期要学汇编,用的书也不是王爽的……各位大神教教我吧,真想了很久。 第一个问题:你可以加上word ptr
第二个问题:用call是调用原来的int9例程,而你原来的int9例程的入口地址保存到了ds:那里,调用完后返回call下面的指令去执行
第三个问题:inc 后面的byte ptr es:是内存中的内容,比如内容是1,inc后就是2,颜色才会变啊,内容就是颜色的属性 1.第2个有寄存器cs, 默认就是子单元了
2.调用完了不是跳出新的Int 9中断
3.感觉利用cl来传递也可以
页:
[1]