求助 微机原理课程设计 程序解释

来源:百度知道 编辑:UC知道 时间:2024/06/06 18:03:38
START1:mov dx,COM_ADD;控制端口地址
mov al,10000000b;初试化8255的A口和B口
out dx,al
loop1:mov di,offset shun;汉字代码偏移地址
loop2:mov bh,99h
add di,7
loop6:add di,1
loop3:sub di,8
mov cx,8
mov al,11111110b;首行行码
loop4:mov dx,PA_ADD;a口地址
out dx,al
push ax
mov al,[di];获得shun表中的数值
mov dx,PB_ADD;b口地址
out dx,al;把AL中的值传到DX中
pop ax
rol al,1
inc di;指向下一行对应的列码
push cx
mov cx,800h;控制每一行的执行时间
loop5:loop loop5
pop cx
loop loop4;显示8行
dec bh
cmp bh,0
jnz loop3;上面的99H是否已经循环完毕
cmp di,offset[shun+58h];因为表的长度11*8=88即它的长度是58h

jnz loop6;未完继续显示
mov di,offset[shun+1]
jmp loop2

求完整的注释=。- 该程序是汉字显示器的

xxxx0是个十六进制数,最后一位是0的话转换为十进制定会被16整除, 不信你试试,这是因为前四位分别是16的倍数,最后一位是0,加起来还是16的倍数。
堆栈是一种形象的说法,sp指针指向某一地址,成为栈底,数据从栈底开始向上保存,取出的时候按照后进先出的原则,实际是一种保护数据的方式,在微机原理中很重要。

xxxx0是个十六进制数,最后一位是0的话转换为十进制定会被16整除, 不信你试试,这是因为前四位分别是16的倍数,最后一位是0,加起来还是16的倍数。