. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9   实验成功了,虽然不完美但毕竟是自己花了1个半小时编出来的,来秀一下。  [已解决] 回复[ 4次 ]   点击[ 405次 ]  
zyw23
[帖 主]   [ 发表时间:2008-12-01 16:07 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2008-11-22 15:49
assume cs:code,es:data,ss:stack
data segment
  db 00000010B,00100100B,0110001B
data ends
stack segment
  db 'welcome to masm!'
stack ends
code segment
 start: mov ax,0b800h
        mov ds,ax
        mov ax,data
        mov es,ax
        mov ax,stack
        mov ss,ax               ;前面指令定义为显存缓冲区段DS字符属性段为ES字符段为SS
        mov bx,0780h            ;字符输出的行数第13行
        mov di,0                
        mov dx,3                ;JCXZ指令的循环次数即三次完整字符的输出
        mov si,0                ;字符输出的列变量
    s0: mov ah,es:[di]          ;将字符属性存入AH
        dec dx                  ;每循环一次减1共三次循环
        mov bp,0
        mov cx,16
     s: mov al,[bp]             ;将字符按字节送义AL
        mov [bx].32[si],al      ;字符从33列送入显存缓冲区
        mov [bx].32[si+1],ah    ;字符属性从33列送入显存缓冲区
        add si,2                ;循环一次向右移2列
        inc bp                  ;循环一次字符段内存字节单元地址+1
        loop s        
        inc di                  ;完成一次完整的字符输出,改变一次字符属性
        mov cx,dx
        jcxz s1                 ;CX=0时跳转到S1
        jmp short s0            ;位移到S0
    s1: mov ax,4c00h
        int 21h
code ends
end start
mouse
[第1楼]   [ 回复时间:2008-12-02 14:53 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
能实现,就已经对程序显示字符串的本质了解了。楼主继续加油改进下程序~

stack segment 
  db 'welcome to masm!'
---------------
把数据定义在栈段内不好,把他和颜色都定义在数据段,每个段根据段名猜测能看出大概的功能。

三个字符串显示在三行看着会舒服点~
mess
[第2楼]   [ 回复时间:2008-12-05 09:52 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
可以用两个循环嵌套使用比较清晰,就如同c语言的,至于cx的值可以用栈保存。这个书上有实例.

for()
{
  for()
  {
      
  }
}
zyw23
[第3楼]   [ 回复时间:2008-12-05 22:45 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2008-11-22 15:49
做实验九的时候刚学了JCXZ 标号 指令,所以用一用熟悉一下.

谢谢MOUSE的提醒,以后注意.
也谢谢MESS

今天完成了课件设计1了..庆祝一下.
zyw23
[第4楼]   [ 回复时间:2008-12-18 17:06 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:2
注册日期:2008-11-22 15:49
此贴由 贴主 于 [ 2008-12-18 17:06 ] 结贴。 结贴原因:问题已解决
得分情况: 2楼(mess):1分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved