社区
汇编语言
帖子详情
如何将存储器或寄存器中的内容在屏幕上显示出来?
阿木的汤
2005-05-29 02:38:33
如何将存储器或寄存器中的内容在屏幕上显示出来?
...全文
859
9
打赏
收藏
如何将存储器或寄存器中的内容在屏幕上显示出来?
如何将存储器或寄存器中的内容在屏幕上显示出来?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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号功能号显示
全国计算机软件与技术考试客观题笔记
当用户打开一个Word文件时,操作系统会将文件
内容
从磁盘读取到内存,以便CPU进行处理并
显示
在
屏幕
上。 2. **CPU结构**:CPU包括运算器、控制器、
寄存器
组和内部总线等组成部分。控制器由程序计数器、指令
寄存器
、...
计算机硬件系统.ppt
输出设备负责将计算机的内部信息传递出来(称为输出),或在
屏幕
上
显示
,或在打印机上打印,或在外部
存储器
上存放。常用的输出设备有磁盘、
显示
器和打印机等。 微型计算机的系统结构图: PC机的硬件配置包括主机箱...
[从零学习汇编语言] -
寄存器
详解
文章目录前言一、
存储器
与通用
寄存器
1.
存储器
2. 通用
寄存器
前言 上一章我们曾简单的介绍过计算机
中
的一些硬件和软件的相关概念,还不熟悉的小伙伴可以点击下面的链接进行预习: [汇编语言] - 汇编语言基础知识...
二、
存储器
和
寄存器
简介
扩展插槽位于主板上; b. 扩展插槽一般插有RAM内存条和接口卡; c. CPU不能直接控制外设,而接口卡可以直接控制外设,因此CPU和接口卡插槽用总线相连,从而实现CPU通过控制接口卡的方式间接控制外设; 2. ...
汇编语言——实现用多种寻址方式在
屏幕
上
显示
“hello world !“
【代码】汇编语言——实现用多种寻址方式在
屏幕
上
显示
"hello world!
汇编语言
21,497
社区成员
41,616
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章