问题x86汇编转换成整数的ASCII码

我尝试使用下面的代码的一个整数转换ax ASCII码。 但运行它输出515,而不是513如我所料。 哪里的错误?

stk segment dw 32 dup(0) stk ends dts Segment posnum db 6 dup(0) ;0<x<65536; dts ends cds Segment Assume cs:cds , ds:dts,ss:stk Main Proc Far mov ax,seg dts mov ds,ax mov es,ax xor ax,ax mov ax,513 mov di,offset posnum Call ConvertPositive mov ah,09h mov dx ,offset posnum int 21h main_finish: mov ah,08h int 21h mov ax,4c00h int 21h Main endp cds Ends procs segment assume cs:procs ConvertPositive proc far xor dx,dx xor cx,cx mov bl,10 mov bh,0 divloop: mov dx,0 div bx add dl,30h mov byte ptr [si],dl inc cl inc si cmp ax,0 jne divloop enddiv: dec si copy: std LODSB cld STOSB loop copy mov byte ptr [di],'$' ret ConvertPositive endp procs ends end Main

--------------解决方案-------------

SI未初始化。 它应指向分配用于相反的顺序数字的缓冲器。

你的鸿沟循环看起来不错

的#include <stdio.h>中
#包括<stdlib.h中>
#包括<string.h中>

INT主要(无效)
{
无符号整型AX;
unsigned int类型DX;

AX = 513;

而(AX)
{
DX = AX%10;
AX = AX / 10;
的printf(“%C”,DX +的0x30);
}
的printf(“\ N”);
}

我得到了315以上循环。

我怀疑,当您试图翻转你5串绕是踩在你3.尝试一些像713,看看它是否会导致717 523,如果你得到525,等我猜1234结果4334。

分类:部件 时间:2012-01-01 人气:0
本文关键词: 86,组装,16位
分享到:

相关文章

  • 寻找16位的C编译器86 2013-02-01

    我工作的移植UC / OS-II从DOS到86(实模式). 我需要: (1)编译器生成实时模式的16位x86汇编(2)汇编汇编生成的汇编成目标文件(3)连接器链接对象文件和输出可执行文件(原始二进制,COM,MZ,PE,ELF是罚款) (4)不调用DOS服务(INT 21H)标准库,只能靠BIOS服务. 我不知道是否有任何工具链可以做到这一点. 非常感谢 --------------解决方案------------- 退房的FreeDOS项目. 他们有开发工具,包括编译器,汇编器和连接器. 您可

  • 我怎样才能建立在16位MASM大会86休眠功能? 2013-08-05

    我一直在网上搜索的最后两个小时,我发现,符合我的需要似乎并没有工作的唯一的事. 我想创建的16位MASM大会的x86睡眠/延迟过程,将,比如说,屏幕的每500毫秒上打印的字符. 从研究,我都做了,似乎有三种方法来实现这一点 - 我想用它使用的CPU时钟周期之一. 请注意,我通过VMware Fusion的在Mac OS X雪豹运行Windows XP - 我不知道这会影响什么. 可能有人请点我在正确的方向,或提供一个工作一段代码,我可以调整? 谢谢! 我发现的代码应该是打印的"A"在屏

  • ATmega128的:添加和减去16位数字(组装) 2014-04-11

    我用的ATmega128微控制器工作,按说需要添加两个16位数字. 我使用AVR Studio和这是我走到这一步: .include "m128def.inc"; .equ ramstart = 0x100 .def temp = r16 .dseg .org ramstart number1: .byte 2 number2: .byte 2 .cseg .org 0 rjmp start start: ; number1 := 0x7856 ldi temp, low(number

  • 在使用实分段模式x86汇编和DOS程序大于64K(16位) 2012-02-27

    我想知道你是怎么需要处理的是大于64K时,你正在做的16位(组装)编程为DOS实模式分段组装程序. 在这本书中,我下面说("汇编语言一步一步"杰夫Duntemann)作者提到一些有关使用多个代码段(可惜不详谈). 我只是想知道如何做到这一点. 我知道这种记忆模型现在已经过时了,但我只是出于好奇,想知道你将如何做到这一点. --------------解决方案------------- 好了,你只写你的工作地址DS的上话,并且你可以通过DS使用它:DI. 这样,您就可以使用更多的最多的R

  • 16位微控制器正弦函数 2012-06-07

    我需要生成一个正弦波来填补大小1024,一个字符表中的微控制器字长为16位和浮点运算不可用. 正弦波本身将0值之间振荡到255,127为中心点. 有任何想法吗? --------------解决方案------------- 你只实际上需要四分之一存储正弦波 - 你可以从第一象限查找其他的四分之三. 所以,你只需要256个字节. 要生成微控制器上的价值,实现CORDIC. 您可以存储一个值,并且从整个正弦波. 创建您的PC上的预先计算阵列. 你只需要创建第四个数组,如果ROM(或同等学历,如闪存

  • 什么是中断69 x86的16位汇编语言? 2012-08-04

    我一直在寻找一些片断,看到这些线(部分.com文件): DB 66; CALL D59C:C2C0; INT 69 MOV SI, C8C6 什么是INT 69吗? 我没有在网上找到任何东西,我没有在这里找到任何东西,以及: 奇怪的是,没有移动到任何值AH或AL的前INT 69 . EMU8086. 8086微处理器模拟器. 集成的反汇编. --------------解决方案------------- 假设一切都在这里十六进制,如果这是16位代码则有: 66 DB 66 9A C0 C2 9C

  • 如何运行与Windows 8的64位版本的16位应用程序? 2012-10-30

    我想学习汇编Z80编程语言,并以组装程序,我必须使用一个叫做devpac8x程序. 导让我创建一​​个Windows批处理文件,这样,在命令提示符中输入正确的命令(ASM你好),那么它贯穿TASM程序并devpac8x使其组装并从.z80文件转换为.8xp文件因此它可以由TI-84 +计算器它将被发送到读取. 我不能使用devpac8x因为它是一个16位应用程序,而我有一个64位操作系统. 我怎样才能得到这个程序运行,还是有另一个程序,将工作,如果这样的话我将如何编辑批处理文件,以适应这种? -

  • C#控制台应用程序的所有16位? 2012-12-25

    我读了关于NTVDM.EXE为我建立一个快速测试控制台应用程序,它坠毁机的朋友抱怨这个EXE上. 据我了解这一切DOS CMD窗口(C#控制台应用程序在内)作为运行16位不是32位. 这是真的? 这是否意味着我的所有作品控制台应用程序后台办公应用程序正在运行的16位而不是使大多数32位可用? 什么有关Windows服务? 因为我相信我们写它作为一个控制台应用程序,然后使它作为Windows服务运行? 谢谢 --------------解决方案------------- 被编译为x86的任何.NE

  • 解决:“不支持16位应用程序”,弹出对话框不会消失...... 2012-12-28

    你好技术支持人员! 我需要一些帮助... 在过去的一周,我已经开始得到一个弹出对话框,在即将到来不断. 它说: 不支持16位应用程序 该程序或功能"\ ?? \ C:\用户\ *** \应用程序数据\本地\ NVIDIA \ NvBackend \ ApplicationOntology \ OAWrap per.exe"不能由于与Windows的64位版本不兼容启动或运行. 请联系软件供应商要问,如果一个64位Windows兼容的版本. 我不知道,因为之前,我开始收到此消息,除了我买

  • 16位C编译器是如何工作的? 2013-03-27

    C'S内存模型,其使用指针运算和所有的,似乎模型平面地址空间. 16位计算机上使用分段存储器的访问. 16位C编译器是如何处理这一问题,并从C程序员的角度模拟平面地址空间? 例如,大致将下面的代码编译成的8086是什么汇编语言指令? long arr[65536]; // Assume 32 bit longs. long i; for(i = 0; i < 65536; i++) { arr[i] = i; } --------------解决方案------------- 16位C编译器是如

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.655 (s). 10 q(s)