【Updating】汇编语言学习记录02
换码指令、字符的输出
前置知识:
XLAT指令:将BX指定的缓冲区中、AL指定的位移处的一个字节数据取出赋给AL,实际相当于(AL) = (DS:(BX+AL))。注意,不是单纯地赋予AL+BX,而是对应地址的值。换码指令执行前,一般在主存建立一个字节量表格(如下代码4-6行),内含要转换成的目的代码表格首地址存放于BX,AL存放相对表格首地址的位移量。
换码指令执行后,将AL寄存器内容转换为目的代码。
指令中断:它属于CPU内部执行程序所引起的中断,即内部中断。其中,执行中断调用指令
INT i8产生的i8号中断,即为指令中断。21H号中断,是DOS提供给用户用于调用系统功能的中断,有近百个功能供使用。
字符输出的功能调用:DOS功能调用
INT 21H功能号:AH=
02H;入口参数:DL=字符的ASCII码;功能:在显示器当前光标位置显示给定的字符,光标右移一个字符位置。
assume cs:codesg, ds:datasg
datasg segment
ASCII db 30h,31h,32h,33h,34h,35h
db 36h,37h,38h,39h ;0~9的ASCII码
db 41h,42h,43h,44h,45h,46h ;A~F的ASCII码
hex db 09h ;任意设定了一个待转换的一位16进制数,这里以'0f'为例
datasg ends
codesg segment
start:
mov ax, datasg
mov ds, ax
mov bx, offset ASCII ;bx存储标号ASCII的偏移地址(将其作为基准值)
mov al, hex ;将待转换的16进制数放到低位寄存器
and al, 0fh ;按位与,对8位的前4位清0(因为实验只要求输出后4位)
xlat ;换码:al<- DS:[BX+AL] 基准值BX(ASCII的offset)+位移量AL(待转换)
mov dl, al ;入口参数:dl<-al
mov ah, 2 ;02号DOS功能调用
int 21h ;显示一个ASCII码字符
mov ah, 4ch
int 21h
codesg ends
end start
内存中存储的数据:

运行结果:
| hex赋值 | 0fh |
09h |
|---|---|---|
| 运行结果 | ![]() |
![]() |
【Updating】汇编语言学习记录02的更多相关文章
- Qt学习记录--02 Qt的信号槽机制介绍(含Qt5与Qt4的差异对比)
一 闲谈: 熟悉Window下编程的小伙伴们,对其消息机制并不陌生, 话说:一切皆消息.它可以很方便实现不同窗体之间的通信,然而MFC库将很多底层的消息都屏蔽了,尽管使用户更加方便.简易地处理消息,但 ...
- 02 | 日志系统:一条SQL更新语句是如何执行的? 学习记录
<MySQL实战45讲>02 | 日志系统:一条SQL更新语句是如何执行的? 学习记录http://naotu.baidu.com/file/ad320c7a0e031c2d6db7b5a ...
- GIT初始学习记录
目录 GIT学习记录 配置github与gitlib两个账号 基本操作 git init:初始化仓库 git status:查看仓库状态 git add :向缓存区中添加文件 git commit 保 ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Solr学习记录:Getting started
目录 Solr学习记录:Getting started 1.Solr Tutorial 2. A Quick Overview Solr学习记录:Getting started 本教程使用环境:jav ...
- Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...
- Python全栈工程师系列学习之学习记录
@ 目录 前言 Day 01 一.python的历史和种类 二.安装python解释器以及配置环境变量 三.变量.常量和注释 Day 02 Day 03 Day 04 Day 05 Day 06 一. ...
- "利用python进行数据分析"学习记录01
"利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...
- SaToken学习笔记-02
SaToken学习笔记-02 如果排版有问题,请点击:传送门 常用的登录有关的方法 - StpUtil.logout() 作用为:当前会话注销登录 调用此方法,其实做了哪些操作呢,我们来一起看一下源码 ...
随机推荐
- ThreeJS系列2_effect插件集简介( 3d, vr等 )
ThreeJS系列2_effect插件集简介( 3d, vr等 ) ThreeJS 官方案例中有一些 js库 可以替代 render 将场景中的物质变换为其他效果的物质 目录 ThreeJS系列2_e ...
- js-循环遍历
for循环 (最传统的方法) let arr=[a,b,c,d] for (var i = 0; i < arr.length; i++) { console.log(arr[i]); } fo ...
- 一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试
一:背景 1. 讲故事 每次项目预交付的时候,总会遇到各种奇葩的坑,我觉得有必要梳理一下以及如何快速解决的,让后来人避避坑,这篇就聊聊自己的所闻所遇: 我去,本地环境代码跑的哧溜,上了测试环境出问题 ...
- [Luogu P4178]Tree (点分治+splay)
题面 传送门:https://www.luogu.org/problemnew/show/P4178 Solution 首先,长成这样的题目一定是淀粉质跑不掉了. 考虑到我们不知道K的大小,我们可以开 ...
- 求0到n之间素数个数的序列
要求: (1) 找出0-1000之间素数(2) 设f(n)表示0-n之间的素数个数,计算出当n=0,1,2,3,.....,997时f(n)的值,并写入文件 分析: 首先找素数使用一个效率较高的方法- ...
- 利用命令行将本地代码上传至GitHub仓库
p.p1 { margin: 0 0 0 60px; font: 16px "PingFang SC"; color: rgba(88, 110, 117, 1) } p.p2 { ...
- layui导航
关于导航 首先看一下官网的样式: <!DOCTYPE html><html><head> <meta charset="utf-8" /& ...
- 【笔记】nrf52832广播使用--厂商自定义数据应用
需求: 1)使用蓝牙不停发送ble广播,发送自定义的数据,并每一秒更新自定义数据. 2)设置不同的发射功率.广播间隔.广播名称 1.初始化 使用nordic官方sdk17版本,打开一个ble串口用例. ...
- ubuntu 文件编码格式 转换
正在学习jquery,之前在windows下弄的编码到了 ubuntu下,乱码: 找到一个方法: iconv : 源文件:a.htm 格式:gbk: 目标: a.html 格式:utf8: ic ...
- JS多物体运动案例:变宽、变高
任务描述: 当鼠标移入"变宽"矩形时,该矩形宽度逐渐增加至400px,移出该矩形,宽度逐渐恢复至初始值;当鼠标移入"变高"矩形时,该矩形高度逐渐增加至400px ...

