王爽<汇编语言>实验十
实验十 3.数值显示(以下程序附带测试程序)
;名称: dtoc
;功能: 将dword型数据转变为表示十进制数的字符串,字符串以0为结尾
;参数: (ax)=dword型数据低字
; (dx)=dword型数据高字
; ds:si指向字符串的首地址
;返回: 无
assume cs:code
data segment
haha dd
tata dd dup(?)
data ends
code segment
main:
mov ax,data
mov ds,ax
mov si,offset haha
mov ax,[si]
add si,
mov dx,[si]
mov si,offset tata
call dtoc
mov dh,
mov dl,
mov cl,
mov si,offset tata
call show_str
mov ax,4c00h
int 21h dtoc:
push bx
push cx
push si
mov bx, ;bx 用于记录最终的位数
r:
mov cx,
call divdw
push cx ;计算余数,商,余数保存入栈
inc bx ;位数增加 cmp dx,
jnz next
cmp ax,
jz ok ;商为0,则跳出r循环
next:
jmp r
ok: mov cx,bx
s: pop ax
add al,30h
mov [si],al
inc si
loop s
mov byte ptr [si],
pop cx
pop bx
pop si
ret divdw:
push bx
mov bx,ax
mov ax,dx
mov dx,
div cx
push ax ;将int(H/N)入栈
mov ax,bx
div cx ;[rem(H/N)*65536+L]/N结果商放在dx中,余数放在ax中
mov cx,dx
pop dx
pop bx
ret show_str:
push cx
push bx
push ax
push dx
push ds
push es
push di ;将要使用到的寄存器入栈 mov ax,0b800h
mov es,ax
mov al,
mul dh
mov bx,ax ;基址赋值
mov al,
mul dl
mov di,ax ;变址赋值 read:
mov ch,[si]
cmp ch,
jz ok2 ;判断是否遇到字符串尾端 mov ah,cl
mov al,[si]
mov es:[bx+di],ax
inc di
inc di ;指向下一个屏幕显示位置
inc si ;指向下一个字符
jmp read
ok2:
pop di
pop es
pop ds
pop dx
pop ax
pop bx
pop cx ;使用到的寄存器出栈
ret code ends
end main
王爽<汇编语言>实验十的更多相关文章
- 王爽<<汇编语言>> 实验十四
;以"年/月/日 时:分:秒"的格式, 显示当前的日期, 时间 assume cs:code code segment main: out 70h,al ;告诉CMOS RAM将要 ...
- 王爽< 汇编语言>实验十二
;此乃安装程序 ;功能:将8086cpu中断类型码为0 的中断向量设置为我们编写的中断服务程序入口地址 ;该中断在除法发送溢出的时候产生 assume cs:code code segment mai ...
- 王爽<汇编语言>实验十一 (附测试代码)
;名称: letterc ;功能: 将以0为结尾的字符串中的小写字母转变成大写字母 ;参数: ds:si指向字符串首地址 assume cs:code data segment db data end ...
- 王爽汇编语言(第三版)环境搭建(附PDF及工具下载)
一.前言 最近在学习汇编语言,使用的是读者评价非常高的王爽老师写的<汇编语言>(第三版),为了适应现在各个版本的windows操作系统,所以采用VMWare虚拟机来搭建纯DOS环境. 二. ...
- 201671010438王奕晗实验十四 团队项目评审&课程学习总结
个人学习总结博客 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 完成个人软件心得总结 一.结合本学期课程学习内容,对比<实验一 软件工 ...
- 王爽-汇编语言-综合研究四-不使用main函数编程
(一) 研究目的 使用C语言编程,我们一定要使用main函数么? (二) 研究过程 1) 最初的程序 首先,我们编写一个不写main函数的C语言程序. 程序如下: 在编译的过程中,没有发现错误.在链接 ...
- 王爽-汇编语言-综合研究一-搭建简易C环境
(一) 学习过程: 整个过程分为两个部分: 第一:将TC2.0的环境使用虚拟软盘复制到DOS虚拟机中: 打开WinImage,fileànew,由于TC2.0的环境解压后为2.02M,所以我们在Sta ...
- 关于《汇编语言(王爽)》程序6.3使用16个dw 0的问题
在学习王爽老师<汇编语言>的第6.2节时,在程序6.3代码中,给出了如下的代码: assume cs:code code segment dw 0123h, 0456h, 0789h, 0 ...
- Linux下学习王爽老师的汇编语言
坐起来非常容易,找到这条路确实非常曲折,为了后来的同志们不再纠结,特记录如下: 这几天看汇编语言时,很多人都推荐王爽老师的<汇编语言>,老师的书的确写的很好,但是讲的是ms的汇编,但是总不 ...
随机推荐
- Asp.net MVC 数据注解与验证
数据注解特性定义在名称空间System.ComponentModel.DataAnnotations中(有些特性定义在其他名称空间中),它们提供了服务器端验证的功能,当在模型的属性上使用这些特性时,框 ...
- spark应用程序常见问题整理
1.executor lost /java oom 通常是由于单个task内存占用过多,可以观察是哪个阶段挂的,如果类似groupbykey,可以看看是否有数据倾斜现象 如果不是,可以repartit ...
- 进程间通信--fork函数
#include <unistd.h> pid_t fork(void); fork() creates a new process by duplicating the calling ...
- Manjaro mirror in china
1, mirrot file: /etc/pacman.d/mirrorlist Server = http://mirrors.ustc.edu.cn/manjaro/stable/$repo/$a ...
- IOS 使用wxsqlite3为sqlite3数据库加密
1,下载wxsqlite3 地址http://jaist.dl.sourceforge.net/project/wxcode/Components/wxSQLite3/wxsqlite3-3.1.1. ...
- 帝国cms怎么调用栏目的别名呢?
在世界买家网新模板制作过程中,由于栏目名称比较长,用在标题上没有问题,对seo有利,但是在页面上不希望这么长,简单即可,提过提供了栏目别名,如果能调用就方便了, 请留意下面的修改方法 修改后栏目别名使 ...
- Android Studio 2.2.2 发布
Android Studio 2.2.2 发布了.包括 canary, dev, beta, and stable 这几个系列. 该版本修复了 Android Studio 2.2.1 中排名较前的b ...
- TextView 常用摘要
1.代码中设置drawableTop TextView textView = new TextView(getActivity()); Drawable drawable = getResources ...
- php 读取网页源码 , 导出成txt文件, 读取xls,读取文件夹下的所有文件的文件名
<?php // 读取网页源码$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLO ...
- putty连接报NetWork error:connection refused
首先通过物理终端进入到linux上,手工检查ssh发现没运行 /etc/init.d/sshd status 使用rpm -V 命令可检查到ssh的软件包正常 /rpm -V openssh-serv ...