|
主题 : : 第10章汇编课题:多方位,多角度,综合超级无敌研究大总结~ [待解决] |
回复[ 0次 ]
点击[ 341次 ] | |
荣誉值:6
信誉值:0
注册日期:2010-03-17 10:10 |
第10章,实验10题;编写子程序
哈哈,总算到了这题啊, 这个没写的时候,就遇到朋友写过的啊。
当时我也看了好久的。我还真不信我写不出来呢。
速度,速度解决了。大步前进吧。
编程,将data 段中数据以10进制显示出来。
assume cs:code,ds:data,ss:data
data segment
dw 123,12666,1,8,3,38,0,0
db 10 dup (0)
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ss,ax
mov ax,26
mov sp,ax
mov ax,0b800h ;设置段地址
mov es,ax
mov al,0ah
mov bl,8;行数
mul bl
mov bx,es
add ax,bx
mov es,ax ;到这里都是设置段地址
mov di,0
mov si,0;设置个循环器,
call show_str
mov ax,4c00h
int 21h
show_str:
mov ax,[di]
mov cx,ax
jcxz s
mov bx,10
s4:mov dx,0
div bx
push dx;记录下余数
inc si
mov cx,ax
jcxz s1
jmp s4
s:ret
s1:mov bx,bp
mov ax,si
mov cx,ax
inc di
inc di
s2:pop dx
mov dh,2
mov al,30H
add dl,al
mov es:[bx+6],dl
mov es:[bx+6+1],dh ;我直接把列数写进去了,以缩短代码大小
inc bx
inc bx
loop s2
mov ax,0
mov es:[bx+6],ax
mov es:[bx+6+1],ax
inc bx
inc bx
mov bp,bx
mov si,0;清零计数器
jmp short show_str
code ends
end start
总结说的容易,做的难,果然我还是太笨了。程序写的真乱。大家不要看,我怕羞。
哎, 程序员真不是好当的, 我们现在才刚开始,大家要加油啦。
这个程序,我个人认为用堆栈不太好。以后写程序最后还要把数据段,代码段,堆栈全部分开设一个,留着备用。
总是到用的时候才绝的不好用。有句话说的好,方到用时方恨少啊。
而且我的程序一点规范都没有,希望以后改正吧。祝自己越写越好。
2010年4月18日,19:45成功~哦也 | | |