- [fenglixin70953] assume cs:code ;实验14,显示当前日期,时间 code segment 09/28 09:54
- [fenglixin70953] assume cs:code data segment db '1975','1976 09/16 17:38
- [fenglixin70953] 看了论坛的贴子,终于会了 assume cs:code code segment 05/06 18:41
- [游客] 谢谢楼上改下面这样可以成功,但用直接定址表如何实现拷贝后子程序中sub标号的定位呢。没想出来。 a 05/04 13:55
- [游客] 中断例程中的的call自己例程中子程序,应该是用jmp基于偏移变量跳转,而不能单纯的call,因为子 05/03 18:48
- [游客] table dw sub1,sub2,sub3,sub4 ------- 定址表应该用偏移距离 05/03 18:43
- [fenglixin70953] s: mov dl,0 mov cx,49 s5: pus 04/28 11:01
- [hychewei] 看不懂!!能讲讲不?还有为什么没有那么伪代码? 04/23 22:23
- [fenglixin70953] 呵 04/17 22:20
- [wdm] 不错。不过,程序没有注释和分析,就会像僵尸一样干瘪啊。 04/17 20:01
[2008-04-17 18:49] 15章全屏显A-Z
stack segment
db 128 dup(0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128
mov ax,0b800h
mov es,ax
mov ah,'A'
s:
mov dl,0
mov cx,49
s5: push cx
push ax
mov al,160
mul dl
mov bx,ax
pop ax
mov di,0
mov cx,80
s4: mov byte ptr es:[bx+di],ah
mov byte ptr es:[bx+di+1],2
add di,2
loop s4
inc dl
pop cx
loop s5
call s1
inc ah
cmp ah,'Z'
jna s
mov ax,4c00h
int 21h
s1:push ax
push dx
mov dx,1000h
mov ax,0
s2:sub ax,1
sbb dx,0
cmp ax,0
jne s2
cmp dx,0
jne s2
pop dx
pop ax
ret
code ends
end start
[ wdm 发表于 2008-04-17 20:01 ]
不错。不过,程序没有注释和分析,就会像僵尸一样干瘪啊。
[ fenglixin70953 发表于 2008-04-17 22:20 ]
呵
[ fenglixin70953 发表于 2008-04-28 11:01 ]
s:
mov dl,0
mov cx,49
s5: push cx
push ax
mov al,160
mul dl
mov bx,ax
pop ax
mov di,0
mov cx,80
s4: mov byte ptr es:[bx+di],ah
mov byte ptr es:[bx+di+1],2
add di,2
loop s4
inc dl
pop cx
loop s5
这段我写得太长了
用下面的就可代替
s:
mov di,0
mov cx,4000
s4:mov byte ptr es:[di],ah
mov byte ptr es:[di+1],2
add di,2
loop s4