标题:汇编~我想在640*480 16色图形模式下显示一个文本文档的内容,可是却总也无法 ...
取消只看楼主
summer__sing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-6-28
结帖率:100%
已结贴  问题点数:0 回复次数:4 
汇编~我想在640*480 16色图形模式下显示一个文本文档的内容,可是却总也无法输出,而且我没设置输入可是键盘能输入内容~~~~~高手指点啊!!!!!!
.model small
.386
.stack
.data
PATHNM1 DB 'D:\TEST.TXT'
  BUFFER1 DB 100 DUP (?)
.code
.startup
  mov ah,0fh
  int 10h
   
  push ax
  mov ah,0   
  mov al,12h ;640*480 16色图形
  int 10h
  
  mov ax, @data
  mov ds, ax
  ;mov es,ax
   
  ;打开文件TEST.TXT
  MOV AH,3DH ;打开一个已有文件
  MOV AL,0 ;以读方式打开文件
  LEA DX,PATHNM1 ;DS:DX是串首地址
  INT 21H

  ;读取文件内容,存入BUFFER1
   
  MOV BX,AX ;AX为文件句柄
  MOV AH,3FH ;读文件
  LEA DX,BUFFER1
  MOV CX,10 ;希望读入的字节数
  INT 21H

  ;显示BUFFER1中的内容
  MOV CX,AX ;AX为实际读入的字节数   
  lea si,BUFFER1
   
next:
  mov ah,0eh
  mov bh,00h
  mov bl,04h
  mov al,[si]
  int 10h
  inc si
  loop next
   
  ;关闭文件
  MOV AH,3EH
  INT 21H

  ;按任意键退出
  mov ah,1
  int 21h
  mov ah,0fh ;获得当前显示模式
  mov bh,0
  int 10h
.exit
end
搜索更多相关主题的帖子: 而且 键盘 model 
2011-06-28 14:47
summer__sing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-6-28
得分:0 
我做了很久了,就是这个地方卡住了,大家帮个忙啊
2011-06-28 15:03
summer__sing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-6-28
得分:0 
回复 3楼 ansic
可以帮我看一下这个程序吗?
程序代码:
.model small
.386
.stack
.data
           PATHNM1 DB 'D:\TEST.TXT'
         BUFFER1 DB 100 DUP (?)
.code
.startup
         mov ah,0fh
         int 10h
         push ax
        
         ;///////////////////////////////////////////
             ;mov ah,0  
             ;mov al,12h       ;640*480 16色图形
             ;int 10h
             ;///////////////////////////////////////////
            
         mov ax, @data
         mov ds, ax
         
          ;打开文件TEST.TXT
          MOV AH,3DH      ;打开一个已有文件
          MOV AL,0        ;以读方式打开文件
          LEA DX,PATHNM1  ;DS:DX是串首地址
          INT 21H

          ;读取文件内容,存入BUFFER1
         
          MOV BX,AX       ;AX为文件句柄
          MOV AH,3FH      ;读文件
          LEA DX,BUFFER1
          MOV CX,10      ;希望读入的字节数
          INT 21H

          ;显示BUFFER1中的内容
          MOV CX,AX       ;AX为实际读入的字节数  
          lea si,BUFFER1

next:
          mov ah,0eh
          mov al,[si]
          mov bh,00h
          mov bl,05h
          int 10h
          inc si
          loop next
         
         ;关闭文件
         MOV AH,3EH
         INT 21H

         ;按任意键退出
         mov ah,1
         int 21h
             mov ah,0fh       ;获得当前显示模式
             mov bh,0
             int 10h
.exit
end
运行结果是:若输入10个a,则输出10个红色的a,我也不知道为什么会有输入的部分


[ 本帖最后由 summer__sing 于 2011-6-28 16:22 编辑 ]
2011-06-28 16:18
summer__sing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-6-28
得分:0 
回复 5楼 ansic
哦,好的,我试试看,你的那个部分是设置端口的啊~貌似不行啊,我把相应的字符串的东西改成我文件操作得到的东西还是无法显示~~而且我很纳闷儿的是为什么我的那个文件操作里运行时刚开始都要输入呢,而且打印的还是输入的东西

[ 本帖最后由 summer__sing 于 2011-6-28 19:34 编辑 ]
2011-06-28 16:33
summer__sing
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-6-28
得分:0 
回复 5楼 ansic
应该是文件操作那个地方的问题,其实要显示字符串的话,这段代码就行:
程序代码:
.model small
.386
.stack
.data
         s db 'ergerger',0
.code
.startup
         mov ah,0fh
         int 10h
         push ax
        
         ;///////////////////////////////////////////
             mov ah,0  
             mov al,12h       ;640*480 16色图形
             int 10h
             ;///////////////////////////////////////////
            
         mov ax, @data
         mov ds, ax
         mov es,ax
        
         mov ah,13h
         mov al,1
         mov bh,0
         mov bl,05h
         mov cx,8
         mov dh,0
         mov dl,0
         lea bp,s
         int 10h
         mov ah,1
         int 21h
             mov ah,0fh       ;获得当前显示模式
             mov bh,0
             int 10h
.exit
end
大家帮帮忙啊~那个文件显示怎么就是出不来啊!!!
2011-06-28 19:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-344224-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.310361 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved