汇编-输出寄存器的值-输出值
学习汇编有一阵了,已经能够写出一些简单的计算程序(求斐波那契。。。)
今天总结一下令初学者感到头疼的寄存器值输出问题
我们知道:
可以看出寄存器值是一个十六位进制的数,我们可以将其每一位都转成字符进行判断,完成后使用9号系统功能输出结果。
此时计算机输出时以ascll码为准,所以
要将他显示出来,就需要将十六进制数转换为对应位的字符的ASCLL码存起来,再输出。
此处16进制为0-9,A-F(a-f)的组合
我们知道0-9的ASCLL码为48-58
之后的59ascll是冒号“:”
一直到64号
再到65号字符“A”
中间隔了7个无关字符
转换时我们必须注意
是字符需要对应ascll+7
不是就不管
然后编写代码:
需要认识一些关键指令
LOOP;循环指令
SHR;逻辑右移指令
CMP;比较指令
JA;cmp,目的操作数高于源操作数时执行跳转
JB;~低于执行跳转
DEC;自减指令
正式代码如下:
TEMP是数据区的变量,存输出字符的。
定义形式:
TEMP DB "****=对应寄存器$"
每次调用下面代码时,只需要将对应寄存器值赋给AX寄存器
MOV AX,BX;输出BX,其实也可以是其他变量值,不一定是寄存器值
转换代码:
MOV SI,OFFSET TEMP+3;输出的偏移地址XOR CX,CXMOV CL,04HPRINT:MOV DH,AL;逻辑位移,保留低位,CL不能用SHR AX,1SHR AX,1SHR AX,1SHR AX,1AND DH,0FH;取低位ADD DH,30H;变字母CMP DH,':';数字与字母的ascll界限JA IS;高于,是字符JB NO;低于,是数字IS:ADD DH,07H;变字母NO:MOV [SI],DHDEC SILOOP PRINT
输出代码:
MOV DX,OFFSET TEMPMOV AH,09HINT 21H
输出示例:
输出了AX=6FF1的值
完成。
加油!
汇编-输出寄存器的值-输出值相关推荐
- 1、存在如下数列1、1、2、4、7、13、24、44、81、149......现要求该数列第n项的值(n从O开始算)。 程序运行结果: 1/2 输入:4 输出:7 输入:9 输出:149
** 题目 ** /* 1.存在如下数列1.1.2.4.7.13.24.44.81.149-现要求该数列第n项的值(n从O开始算). 程序运行结果: 1/2 输入:4 输出:7 输入:9 输出:149 ...
- Jfinal 不同版本下的前端模版的数据取值输出
为什么80%的码农都做不了架构师?>>> 这边主要记录两个版本前端页面的取值方法. 1.jfinal 2.2版本 默认使用 FreeMarker 作为 View,为了使 ec ...
- Py之pandas:利用pandas工具输出每行的索引值、及其对应的行数据
Py之pandas:利用pandas工具输出每行的索引值.及其对应的行数据 目录 利用pandas工具输出每行的索引值.及其对应的行数据 输出结果 实现代码 利用pandas工具输出每行的索引值.及其 ...
- php 输出答案,php 如何只输出最后生成的那个值??
下面这段 PHP 代码: $count = 1; while ($count < 30) { print_r($count++ . "\r\n"); ob_flush(); ...
- 【C/C++】输入一个整数的二目运算式的字符串,如100+20,332-19,200*2333,44/33二目运算取”加减乘除“中的一种输出运算式的整数结果值
输入一个整数的二目运算式的字符串,如100+20,332-19,200*2333,44/33 二目运算取"加减乘除"中的一种 输出运算式的整数结果值 输入:"%s&quo ...
- python pandas dataframe 不显示索引_Python DataFrame 设置输出不显示index(索引)值的方法...
Python DataFrame 设置输出不显示index(索引)值的方法 在输出代码行中,加入"index=False"如下: m_pred_survived.to_csv(&q ...
- JS循环输出数组及数组键值
项目中通过API获取到json数组,但是前台需要输出数组内容和键值,我们可以通过 for in循环出来.代码如下: var arr={'a':1,'b':2,'c':3} for (var k in ...
- C语言学习之有一个函数: y= x(x<1) 2x-1 (1≤x<10) 3x-11 (x≥10) 写程序,输入x的值,输出y相应的值。
有一个函数: 写程序,输入x的值,输出y相应的值. # include <stdio.h> # include <math.h> int main() {int x,y;pri ...
- C语言--02输出一个字符的ASCII值
/*输出一个字符的ASCII值*/ #include<stdio.h> int main(){ //定义一个字符变量 char c1; //printf语句提示输入一个字符 printf( ...
最新文章
- python运行错误怎么查找_求助,python的二分法查找,按照视频上的代码写下来,结果运行错误...
- 大数据常考--bitmap用来去重占用内存少
- Python3 文件读写(持续更新)
- android studio自动注释
- openssl 生成证书_使用证书和私钥导出P12格式个人证书!
- ThreadInfo结构和内核栈的两种关系
- 第四章 ARMA模型的特性
- 基本知识 100159
- 一款很漂亮的一天只弹窗一次的公告
- cass坡度土方计算案例_四面放坡且坡度不同的工程土方,CASS怎么算?
- 计算机一级B考试总结500字,期中考试总结与反思500
- apscheduler使用中的时区问题
- centos添加桌面快捷方式
- 《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 9 章 答案
- 微型计算机中既能作为输出设备,在微机的硬件设备中,有一种设备在程序设计中既可以当做输出设备,又可以当做输入设备,这种设备是ß...
- 豆瓣 API ( 解决104问题 )
- k8s 查看ip地址属于哪个pod_你如何从其IP地址获得Kubernetes pod的名字?
- UVA 11134 Fabled Rook 枚举 multiset加速
- 申请计算机课代表,课代表申请书的格式是怎样的啊???
- Pr 入门教程:了解基本用户界面
热门文章
- javascript 定义类(转载)
- JAVA 求数组中的最大值
- 【[TJOI2018]异或】
- form表单的一个页面多个上传按钮实例
- Linux 命令[3]:cd
- 机器人局部避障的动态窗口法(dynamic window approach) (转)
- SharePoint 2013 InfoPath 无法保存下列表单
- iOS之CALayer的CAEmitterLayer实现“红包雨”效果
- 2. Add Two Numbers 两数相加
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1053:最大数输出