社区
汇编语言
帖子详情
如何将存储器或寄存器中的内容在屏幕上显示出来?
阿木的汤
2005-05-29 02:38:33
如何将存储器或寄存器中的内容在屏幕上显示出来?
...全文
891
9
打赏
收藏
如何将存储器或寄存器中的内容在屏幕上显示出来?
如何将存储器或寄存器中的内容在屏幕上显示出来?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tpxc
2005-08-23
打赏
举报
回复
assume cs:code
data segment
str db 8 dup(0)
dw 10
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov ax,stack
mov ss,ax
mov sp,16
mov dx,0
mov ax,12606 ;要显示的字就是这里拉
mov cx,0
dtoc: inc cx
div word ptr [bx+8]
push dx
mov dx,0
cmp ax,0
je s
jmp short dtoc
s: pop ax
add ax,30h
mov [bx],al
inc bx
loop s
mov [bx],byte ptr '$'
mov dx,offset str
mov ah,9
int 21h ;dos系统功能调用9号(显示字符串)
mov ax,4c00h
int 21h ;返回dos
code ends
end start
WYlslrt
2005-06-30
打赏
举报
回复
你可以将它改为masm书写格式
WYlslrt
2005-06-30
打赏
举报
回复
把我的操作系统中关于此功能的代码给你
bits 16
org 0
main:
mov ax,cs ;初始化
mov ss,ax
mov sp,07bffh
xor ax,ax
mov ds,ax
mov es,ax
;开始加载中断,为了避免段间错误,以后所有代码都有段超越前缀
;写入22h中断
cli
mov di,22h*4
mov ax,cs
mov [ds:di+2],ax ;向中断向量表写入段值
mov ax,WYOS_int22h_proc
mov [ds:di],ax ;向中断向量表写入偏移
;写入21h中断
mov di,21h*4
mov ax,cs
mov [ds:di+2],ax
mov ax,WYOS_int21h_proc
mov [ds:di],ax
sti
mov ax,cs
mov ds,ax
mov si,WYOSMSG
mov ah,0
int 22h
mov si,WYOSKNL
mov ax,50h
mov es,ax
mov di,0
mov ah,1
mov dx,1000h
mov bx,0
int 22h
jmp 1000h:0000
;加载完成,剩下的就是完成中断函数
jmp $ ;程序结束
;----------------------------------21h中断代码区------------------------------
;21h中断代码
WYOS_int21h_proc:
pusha
push bx
push ax
mov bx,7
mov ah,0eh
mov al,0dh
int 10h
mov al,0ah
int 10h ;重新换一行
;输出ax
mov al,'A'
int 10h
mov al,'X'
int 10h
mov al,'='
int 10h
pop ax ;取得ax,先输出ah,再输出al
push ax ;保存ax
mov al,ah
call SHOWALASCII
pop ax
call SHOWALASCII
mov ah,0eh
mov al,'h'
int 10h
mov al,20h
int 10h
;输出cx
mov al,'C'
int 10h
mov al,'X'
int 10h
mov al,'='
int 10h
mov al,ch
call SHOWALASCII
mov al,cl
call SHOWALASCII
mov ah,0eh
mov al,'h'
int 10h
mov al,20h
int 10h
;输出DX
mov al,'D'
int 10h
mov al,'X'
int 10h
mov al,'='
int 10h
mov al,dh
call SHOWALASCII
mov al,dl
call SHOWALASCII
mov ah,0eh
mov al,'h'
int 10h
mov al,20h
int 10h
;输出BX
mov al,'B'
int 10h
mov al,'X'
int 10h
mov al,'='
int 10h
pop bx ;取得bx
mov cx,bx
mov bx,7
mov al,ch
call SHOWALASCII
mov al,cl
call SHOWALASCII
mov ah,0eh
mov al,'h'
int 10h
mov al,20h
int 10h
;输出SP
mov al,'S'
int 10h
mov al,'P'
int 10h
mov al,'='
int 10h
mov cx,sp
mov al,ch
call SHOWALASCII
mov al,cl
call SHOWALASCII
mov ah,0eh
mov al,'h'
int 10h
mov al,20h
int 10h
;输出BP
mov al,'B'
int 10h
mov al,'P'
int 10h
mov al,'='
int 10h
mov cx,bp
mov al,ch
call SHOWALASCII
mov al,cl
call SHOWALASCII
mov ah,0eh
mov al,'h'
int 10h
mov al,20h
int 10h
;输出SI
mov al,'S'
int 10h
mov al,'I'
int 10h
mov al,'='
int 10h
mov cx,si
mov al,ch
call SHOWALASCII
mov al,cl
call SHOWALASCII
mov ah,0eh
mov al,'h'
int 10h
mov al,20h
int 10h
;输出DI
mov al,'D'
int 10h
mov al,'I'
int 10h
mov al,'='
int 10h
mov cx,di
mov al,ch
call SHOWALASCII
mov al,cl
call SHOWALASCII
mov ah,0eh
mov al,'h'
int 10h
mov al,20h
int 10h
;输出FLAG寄存器
mov al,0dh
int 10h
mov al,0ah
int 10h ;重新换一行
mov al,'F'
int 10h
mov al,'L'
int 10h
mov al,'A'
int 10h
mov al,'G'
int 10h
mov al,':'
int 10h
call SHOWFLAG
mov al,0dh
int 10h
mov al,0ah
int 10h
popa
iret
;===================================
;==========================================================================
;SHOWAL
;
;
;
;==========================================================================
SHOWALASCII:
push ax
push ax
al_showhigh:
shr al,4
add al,30h
cmp al,39h
jbe al_showlow
add al,7
mov ah,0eh
int 10h
jmp al_low
al_showlow:
mov ah,0eh
int 10h
al_low: pop ax
and al,0fh
add al,30h
cmp al,39h
jbe al_endshow
add al,7
mov ah,0eh
int 10h
jmp al_back
al_endshow:
mov ah,0eh
int 10h
al_back: pop ax
ret
;==========================================================================
;SHOWFLAG
;
;
;
;==========================================================================
SHOWFLAG:
PUSH BX
PUSHF
POP BX
PUSHF
PUSH AX
push cx
MOV CX,16
LAST1:
MOV AL,'0'
RCL BX,1
JNC NEXT1
MOV AL,'1'
NEXT1: MOV AH,0EH
INT 10H
LOOP LAST1
MOV AL,'B'
INT 10H
POP CX
POP AX
POPF
POP BX
RET
denghongli1
2005-06-30
打赏
举报
回复
不知道你用的是哪个汇编程序,我也是刚刚学汇编的,我们用的是masm5,用debug查看结果,如果你也是的话,可以先用记事本,把程序写出来,然后用masm5连接汇编,然后可以用debug查看,最后调用dos的02功能,可以查看结果,在调用dos的02功能之前,要注意你是显示输出字符还是字符串,如果是字符可以加这样一条语句 mov dl,ax 其中ax是你所要输出的寄存器名,如果是字符串就要把al改成ax这样就可以了.
不知道我所说的能不能帮助你,我也是个新手!
proinfor
2005-06-06
打赏
举报
回复
显示用DOS的2号功能调用
mov ah,2
int 21h
showtime84
2005-06-06
打赏
举报
回复
举个简单的例子,
mov dl,'a' ;入口参数dl
mov ah,2 ; 调用系统的子程序号
int 21h ; biso中的系统功能调用
这是在电脑屏幕上显示的就是字符 a
xp5211314
2005-06-05
打赏
举报
回复
能不能写一段代码给我参考参考怎么调用的啊!
goodsea
2005-05-30
打赏
举报
回复
用DEBUG -t可以显示寄存器 中的内容
VxD1
2005-05-29
打赏
举报
回复
将存储器或寄存器中的数转换为ASCII码,然后调用dos功能调用的2号功能号显示
FSMC模拟8080时序驱动LCD
屏幕
显示
本文介绍了TFTLCD和FSMC相关知识。TFTLCD采用ST7789驱动芯片,可
显示
彩色图像。FSMC是可变的静态存储控制器,能使STM32应用不同类型外部静态
存储器
。文
中
还阐述了ST7789指令、FSMC接口结构、时序模型、关联
寄存器
等,并给出了程序设计相关
内容
。
TFTLCD出现白屏、镜像
显示
、无法
显示
字符(参考正点原子stm32f103zet6控制TFTLCD
显示
代码修改成合泰32控制其
显示
)
本文介绍了TFTLCD
显示
调试过程
中
的常见问题及解决方案,包括
显示
白屏、镜像
显示
等问题,并提供了具体的修改读写
寄存器
和字体导出变量的方法。
二、
存储器
和
寄存器
简介
本文详细介绍了计算机硬件系统
中
的扩展插槽、接口卡以及各类
存储器
芯片的作用与工作原理,并深入探讨了CPU如何通过内存地址空间管理和控制这些硬件资源。
STM32CubeMx之FSMC灵活静态
存储器
控制器
本文详细介绍了STM32CubeMX
中
FSMC(灵活静态
存储器
控制器)的配置和使用,包括FSMC的功能、外挂设备地址映射以及LCD硬件接口。通过FSMC,可以与各种静态
存储器
和NAND闪存进行交互。同时,文章展示了如何配置时钟、FSMC以及LCD
显示
相关的
寄存器
,并提供了LCD
显示
图片和汉字的代码示例,帮助开发者理解并实现在STM32平台上进行LCD
显示
的操作。
中
显VGUS串口屏:从
寄存器
到变量
存储器
的核心机制与高效应用
本文深入解析
中
显VGUS串口屏的三层存储架构:
寄存器
区(256字节,用于硬件控制)、变量
存储器
区(64KB,用于数据交互)及Flash
存储器
(16MB/128MB)。重点阐述0x80/0x81(
寄存器
操作)与0x82/0x83(变量
存储器
操作)指令帧结构、地址映射规则及工业场景下的高效应用策略,涵盖批量写入优化、RTC时钟差异、视频
寄存器
映射、数据库写入限制等关键技术要点。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章