汇编语言: 从键盘上输入 2 个一位数,求出它们的和(假设和不超过 1 位)。

汇编实现两个数相加 情景再现 学校里开了计算机基础原理的课,里面有汇编,装DOSBOX的那种。 老师布置了个作业: 键盘中输入两个数,然后求和并输出 我想了半天找了很多资料,看了许多大佬的代码,悟出些门道,马上奋笔疾书写下这篇博客期末复习的时候能看。 Tip: 我这里没有用到栈来保护数据,因为我还没怎么懂汇编里的栈,等以后有空就来补充。 示例代码 在这里插入代码片 ... 阅读详情

**
更多习题答案见

https://github.com/Lemonreds/assembly-solution

**

data segment

data ends

stack segment stack
dw 20h dup(?)
top label word
stack ends

code segment
    assume ds:data,cs:code,ss:stack
p proc far

    mov ax,data
    mov ds,ax

    mov ax,stack
    mov ss,ax
    lea sp,top

    mov ah,01h
    int 21h
    mov bl,al

    mov ah,01h
    int 21h
    mov dl,al


    add dl,bl
    sub dl,'0'
    mov ah,02h
    int 21h



    mov ah,4ch
    int 21h


p endp
    code ends
    end p


汇编语言-删除数组中一个关键字流程图 立即下载

相关推荐

汇编语言冒泡法实现一组数的排序

汇编语言冒泡法排序,实现一组数的排序。汇编语言的基础运用

汇编语言求两数之和

#include <iostream> int main() { int a; int b; int c; _asm { mov a,3 //3的值放在a对应的位置 mov b,4 //4的值放在a对应的位置 mov eax,a //把a内存的值放在eax寄存器中 add eax,b //eax 和 b相加,结果存在eax mov c,eax //将eax 的值放在c中 } std::cout << c; //把c的值输出 re.

3735

java第三章作业

这个是我爱IT技术网发布的java第三章作业代码。

leecode刷题:1.两数之和

给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], targe...

weixin_43547900的博客 1013

KEIL5编译报错L6200E:__stdout重定义问题分析与解决

本文深入分析KEIL5编译报错L6200E中__stdout重定义问题的根源,指出因未完整定义__stderr导致与标准库stdio_streams.o冲突。提供完整重定义标准流、启用MicroLIB库等解决方案,帮助开发者彻底解决Symbol multiply defined错误,提升嵌入式开发效率。

uran的专栏 954

【软件使用】Calibre部分提参的实战技巧与常见问题解析

本文详细解析了Calibre部分提参(Partial PEX)的实战技巧,重点介绍了如何利用HCELL与XCELL文件高效排除已知模块,实现精准的寄生参数提取,从而快速定位后仿真中的时序与信号完整性问题。文章涵盖了从图形界面到命令行的完整操作流程,并提供了常见问题(如时钟失真、模块“消失”)的深度Debug指南与最佳实践,助力芯片设计工程师提升验证效率。

yhn456789的博客 1028

汇编语言--键盘输入两个一位十进制数 ,以十进制数的形式输出其和

键盘输入两个一位十进制数 ,以十进制数的形式输出其和 stack segment db 10 dup(?) stack ends data segment ;显示提示语句 string_1 db 'input num a: $' string_2 db 0ah,0dh,'input num b: $' string_3 db 0ah,0dh,'a+b= $' data ends code se...

海到无边天作岸 山登绝顶我为峰 1万+

C语言历程-2.求两个整数之和

要求:求两个整数之和 解题思路:2个整数,1个求和结果,所以设置3个变量分别为a、b存放2个整数,sum存放求和结果。用赋值运算符“=”把相加的结果传给sum。 #include<stdio.h> //这是编译预处理指令,通过调用stdio.h文件来调用其中的printf函数 int main() //定义主函数 { int a,b,sum; ...

lzj_4399的博客 1005

FFT去除频率分量的完整流程与数学分析

重叠与窗口:确保块间无缝过渡,避免幅度跳变;实时缓冲:处理速度需快于数据输入速度,避免断流;DAC的平滑角色:通过数模转换和滤波,将离散样点还原为连续波形。通过这种分段处理+重叠拼接的方法,即使FFT本身处理的是离散数据块,最终DAC输出仍能保持信号的时间连续性。以下是完整的数学分析过程和代码逻辑,演示如何通过FFT去除特定频率成分,并通过去窗技术恢复信号。信号加窗。

林愿留的博客 1611

Logisim实战:手把手教你设计硬布线版MIPS CPU(多周期/8指令/附电路图)

本文是一份详细的Logisim实战指南,手把手教你设计一个采用硬布线控制的多周期MIPS CPU。文章深入剖析了硬布线控制与微程序控制的核心理念差异,并逐步讲解了从定义执行状态、构建状态跳转逻辑到生成控制信号、集成测试的完整流程,最终实现一个支持8条指令、可运行简单程序的处理器模型。

g9h0i1的博客 592

5-2 分数类

// wasegf.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include using namespace std; int gcd(int m, int n); class CFraction { private: int nume; // 分子 int deno; // 分母 publi

田小宇的专栏 1124

工业级Modbus ASCII实时监控系统(WinForms完整实现)

本文介绍了一个基于WinForms的工业级Modbus ASCII实时监控系统实现方案。该系统采用经典工控界面布局,包含串口配置、数据采集控制和实时数据显示三大区域。核心功能包括:串口通信参数设置、Modbus从站地址配置、寄存器数据采集、实时数据表格展示和趋势图绘制。系统通过ModbusAsciiClient类实现通信核心,采用定时器轮询机制采集数据,支持最多100个数据点的历史趋势显示。界面设计注重用户体验,配置区位于左侧,主显示区在右侧,底部为状态和日志区,符合工业控制系统的操作习惯。代码示例展示了窗

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 278

一位数乘法的汇编语言实现(一)

使用的是16位微程序设计,指令为TEC-2000 16位教学计算机的指令系统 要实现的功能:通过键盘键入一个数字,接收之后显示出来,然后自动补上*号,接着再次键入一个数字,然后自动补上=号,接着输出运算结果。 本文章实现的是,子程序:获得输入的一个数字的值,将该输入的值存放到R0寄存器中,如果按下的按键不是一个数字,则继续等待输入,直到键入的值为数字时,才结束程序。 这个子程序会使用R0寄存器存放...

qq_20179227的博客 4977

搭建自己的MQTT服务器,实现设备上云(Ubuntu+EMQX)

这篇文章教大家在ECS云服务器上部署EMQX,搭建自己私有的MQTT服务器,配置EMQX实现设备上云,设备数据转发,存储;服务器我采用的华为云的ECS服务器,系统选择Ubuntu系统。

2万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

一位数乘法的汇编语言实现(三)

使用的是16位微程序设计,指令为TEC-2000 16位教学计算机的指令系统 要实现的功能:通过键盘键入一个数字,接收之后显示出来,然后自动补上*号,接着再次键入一个数字,然后自动补上=号,接着输出运算结果。 本文章实现,子程序:将一个两位数以内的数(两位数或者一位数),转化为两个一位数(十位数和个位数),其中要转换的数是R0,转换之后的十位数为R1,个位数为R2。 本程序会使用到,R0、R1、R...

qq_20179227的博客 3721

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

汇编语言(从键盘输入若干十进制数值(0-9),以十进制显示其和)

题目 从键盘接收若干个一位十进制数值(0-9),并以十进制数据形式显示其和。 要求: 1)用子程序实现一位十进制数值的输入 2)当用户未输入数值,直接回车时,结束输入 3)输入的数据为多位十进制数据,而机器内部计算的和是十六进制形式,需要进行数值转换,然后以字符串形式输出结果 4)程序中要求有必要的提示信息 示例:用户在提示信息下输入三个数值 Please input a number: 5 Please input a number: 3 Please input a number: 4 Please i

开心星人的博客 5310

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

一位数乘法的汇编语言实现(补)

如果大家将我前面写的代码直接在TEC-2000 16位教学机真机上运行,就会发现和我所展示的东西不相符合。但是如果仔细查看,可以看出,在执行G 2060之后,寄存器R1与R2中的数值是没错的,也就是数据没错,但是输出的结果出了问题。 这个问题是因为真机在执行out输出指令的时候,并不是一瞬间就完成输出的,而是有延时的,如果你的代码在真机out输出延时的时候又有了一个out的输出函数,那么就会导致新...

qq_20179227的博客 1702

从键盘输入两个一位的整数,输出结果,假设结果也是一位的

;从键盘输入两个一位的整数,输出结果,假设结果也是一位的DATA SEGMENTX    DB "X=",'$'Y    DB 0AH,"Y=",'$'Z    DB 0AH,"Z=",'$'DATA ENDS STACK SEGMENT PARA STACK      DW 128 DUP(?)TOP   LABEL WORDSTACK ENDSCODE SEGMENT          ASS...

从前日子很慢 534

一位数乘法的汇编语言实现(终)

使用的是16位微程序设计,指令为TEC-2000 16位教学计算机的指令系统 要实现的功能:通过键盘键入一个数字,接收之后显示出来,然后自动补上*号,接着再次键入一个数字,然后自动补上=号,接着输出运算结果。 本文章实现,主程序:通过调用前面的几个子程序,实现最终要实现的功能。 关键字解释 CALA   ADR:CIN 表示调用子程序CIN,ADR表示要输入子程序CIN的起始地址 主...

qq_20179227的博客 3413

汇编语言结课作业

两个一位数相加 1.设计概述 从键盘输入两个一位十进制数,计算两个数之和,并将结果在屏幕上显示出来。 2.设计环境 硬件:操作系统 Windows 10 64位(Version 2009 / DirectX 12) 处理器 英特尔 Core i5-8300H @ 2.30GHz 四核 主板 华硕 FX505GM(HM370 芯片组) 显卡 NVIDIA GeForce GTX

半岛铁盒的博客 1110

用汇编语言 通过键盘输入进行一位数加法

MOV AH,1 INT 21H MOV DL,AL MOV AH,1 INT 21H ADD DL,AL SUB DL,48 MOV AH,2 INT 21H 通过DOS功能调用

m0_60543964的博客 431

从键盘输入到冒泡排序:用汇编语言还原计算机专业大一实验课

本文通过复现计算机专业经典的8086汇编语言实验课,详细讲解了从DOS环境搭建、键盘输入中断(INT 21H)处理,到DEBUG调试技巧,并最终实现冒泡排序算法的完整流程。文章旨在帮助读者深入理解计算机底层工作原理,培养汇编语言编程思维与调试能力,重温对机器直接控制的编程乐趣。

nginx7reverse的博客 624

汇编语言-------从键盘接收一个无符号数 N,然后响铃 N 次

微机原理课程上机实验之一 题目:       试编写一程序,要求从键盘接收一个无符号数 N,然后响铃 N 次(响铃的 ASCII 码为 07H):      1)N 为一位数;      2)N 为两位数。        已经在DOSBOX/Emu8086 下正确运行过了      详见注释 CODES SEGMENT ;ASSUME CS:CODES,DS:DATA A...

hxxjxw的博客 3187

汇编语言:-999到999之间的两个数的加减乘除运算,结果范围为(-2^15到2^15-1)

用汇编语言实现两个三位数(-999到+999)的加减乘除运算,结果范围为(-2^15到+2^15-1),按ESC键退出。data segment show db "==============================$" show1 db "Please input x:$" show2 db "Please input y:$" show3 db "Please input m...

; 1032
上一篇: 汇编语言: 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。
下一篇: 汇编语言: 试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二 进制数。
lemonreds
博客等级 码龄9年 131粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值