tasm相关内容

ASM 16位将输入缓冲区字符串转换为数字

也许有人能帮我。我正在尝试打印与用户输入的数量相同的“”。所以我需要把字符串转换成数字。我尝试在循环中执行,但遇到一些问题,我的代码不能正常工作,它打印了65535‘’基本上这是最大值。也许有人能解释一下我的问题出在哪里? .MODEL small .STACK 200h .DATA input DB 4, ? , 4 dup (?) Symbol DB '*$' .CODE S ..
发布时间:2022-08-23 22:17:46 其他开发

有多少种方法可以将寄存器设置为零?

我很好奇在 x86 程序集中有多少种方法可以将寄存器设置为零.使用一条指令.有人告诉我,他设法找到了至少 10 种方法. 我能想到的有: xor ax,ax移动斧头,0和斧头,0 解决方案 IA32 下如何将 0 in 移动到 ax 有很多可能... lea eax, [0]mov eax, 0FFFF0000h//所有常量形成0..0FFFFh ..
发布时间:2022-01-06 13:00:26 其他开发

如何在 windows tasm dosbox 中读取图像文件并在屏幕上显示

我目前正在使用 dosbox 在 tasm 中学习图形编程.我一直在使用一堆循环来绘制方形像素块,这真的很难.我想知道是否有办法读取图像并显示它.我知道如何阅读 txt 文件,也许这是一个开始.请帮忙 解决方案 您需要编写/使用图像加载器或使用您自己的图像文件格式.BMP 可能看起来很简单,但其中包含了太多像压缩像素格式等内容,但您仍然可以专注于特定类型的 BMP 而忽略所有其他类型... ..
发布时间:2021-12-18 09:24:37 其他开发

DOSBox 上的 8086 程序集:带有 idiv 指令的错误?

我正在帮助我的一个朋友调试他的程序,我们将其缩小到一个甚至在这里也发生的问题: .MODEL 小.堆栈 16.代码开始:mov ax, 044c0hmov bl, 85伊迪文 bl出口:mov ax, 4c00h21 小时结束开始 用 tasm 4.1 组装后,在 DOSBox 0.74 上运行,进入无限循环.当使用 turbo 调试器检查它时,可以看到它发生在 idiv 指令之后,该指令出于 ..
发布时间:2021-11-30 11:12:40 其他开发

汇编:无法识别 32 位寄存器?

我正在尝试使用 32 位寄存器,因为我需要更大的最大整数值.当我尝试使用 EAX、EBX、ECX 或 EDX 时,TASM 显示 UNDEFINED SYMBOL.TASM 将寄存器作为变量读取.知道原因吗?我使用的是 DOSBOX 0.74 并在 Windows 7 64 位上运行. 解决方案 TASM 和 Borland Turbo Assembler 一样?如果旧的东西甚至知道 32 ..
发布时间:2021-11-24 23:19:25 C#

汇编:无法识别 32 位寄存器?

我正在尝试使用 32 位寄存器,因为我需要更大的最大整数值.当我尝试使用 EAX、EBX、ECX 或 EDX 时,TASM 显示 UNDEFINED SYMBOL.TASM 将寄存器作为变量读取.知道原因吗?我使用的是 DOSBOX 0.74 并在 Windows 7 64 位上运行. 解决方案 TASM 和 Borland Turbo Assembler 一样?如果旧的东西甚至知道 32 ..
发布时间:2021-10-26 16:10:36 其他开发

在 tasm 汇编语言中查找数组的索引并打印它

我做了一个tasm汇编语言程序,它在用户输入的数组中找到最小值.我想找到程序正在查找的最小值的元素的索引. 我想找到程序找到的元素的索引. 例如:输入数组是[1,2,3,4,5,6].它应该返回 1 作为最小值,0 作为索引. 这是代码. 数据段msg db 0dh,0ah,"请输入数组的长度:$";msg1 db 0dh,0ah,"请输入一个数字:$";newl db 0dh ..
发布时间:2021-09-29 19:43:58 其他开发

如何在 TASM 的程序中使用本地标签?

我写的很简单 .MODEL 小.堆栈 100 小时.数据liczba dw 0h利兹尼克 dw 0波特加 dw 1liczbaString dw ?浅黄色 db 26.代码程序:移动斧头,@DATAmov ds, ax调用 PobierzString呼叫 PetlaIteracjiZnaku;zwraca do axe pobraną liczbęPetlaIteracjiZnaku PROCm ..
发布时间:2021-09-29 19:42:44 其他开发

如何使用 DOSBox 中的汇编程序消除字符串中的空格和标点符号?

我试过了,但它给了我一个错误: 遇到意外的文件结尾 ;程序p02.asm.MODEL小.stack 100h.数据源数据库“STRING,WITH.标点符号:和 * 空格!$"辅助数据库"".代码移动斧头,@datamov ds, ax;删除除大写字母以外的所有内容.mov si, 偏移源;指向字符串.mov di, 偏移辅助;指向辅助.L1:移动, [ si ] ;从源中获取字符;检查是 ..
发布时间:2021-09-29 19:42:12 其他开发

将整数转换为字符串程序集 8086 tasm

我正在使用带有 tasm 汇编器的汇编 8086 16BIT.我正在尝试打印一个 int 变量,为此我需要将我的变量 contant 转换为字符串.我试图建立一个程序,但没有成功.它完全错误并且不起作用. 你能帮我构建这个/解释如何构建这个吗? 谢谢各位! 这是我现在的基本代码: stepCounter db 0推偏移 stepCounter ;将“参数"的OFFSET复制到堆 ..
发布时间:2021-09-29 19:42:04 其他开发

TASM 无限循环

我的程序中的问题是当我尝试从包含字符串的缓冲区中取出一个字符时,将一个字符分配给 AL 寄存器并调用一个过程,该过程将 AL 中的字符转换code>AL 到十六进制,我得到一个无限循环.这是我的代码: .model 小.stack 100H.数据关于 db 'example.exe [/?] [sourceFile2]]',13,10,13,10,9,'/?- 帮助',13,10,'$'err_ ..
发布时间:2021-09-29 19:40:24 其他开发

如何显示在 tasm 程序中找到的元素的索引

如何显示我找到的元素的索引号?我已经找到了数组中的最大元素,现在我想打印我发现如何进行的元素的索引? 我想根据以下逻辑找到我在数组中找到的最大数字的元素? 数据段msg db 0dh,0ah,"请输入数组的长度:$";msg1 db 0dh,0ah,"请输入一个数字:$";newl db 0dh,0ah,"$"res db 0dh,0ah,"最大值为:$";连数据库?最大数据库?数据结束代 ..
发布时间:2021-09-29 19:39:02 其他开发

将字节数组与 ax 寄存器相加

我有一个关于将一字节数组求和到 ax 的问题,这是我的代码: 理想模型小堆栈 100 小时数据段;--------------------------arr db 6 重复 (200);--------------------------代码段开始:移动斧头,@datamov ds, ax;--------------------------异或斧头,斧头添加斧头,[arr]添加斧头,[arr ..
发布时间:2021-09-29 19:38:40 其他开发

x86 子指令操作码混淆

在使用 Turbo Assembler 和 Turbo Debugger 时,我对操作码感到惊讶.更准确地说,我有一些组装好的二进制文件,Turbo Debugger 在其中反汇编了这个词 29 C3 正确地sub bx, ax.但是,Turbo Assembler 将完全相同的指令 sub bx, ax 组装到以下字 2B D8 对此感到困惑,我发现 this 引用说明寄存器的减法从寄存 ..
发布时间:2021-09-29 19:35:10 其他开发

将 32 位文件大小与 16 位用户输入进行比较?

我正在编写一个汇编程序,它分析文件并将它们的信息(名称和大小)输出到文件中.我基本上使用 4Eh 和 4Eh 中断来搜索文件:它们都返回 DTA 对象,其中包含有关该文件的相关信息. 它返回一个 32 位文件大小,我必须将它与 16 位用户输入大小进行比较(如果文件信息大于给定的用户输入大小,我必须只输出文件信息). 这里明显的问题是我不知道如何将 32 位数字转换为 16 位数字,否 ..
发布时间:2021-09-29 19:33:34 其他开发

`dup (?)` 在 TASM 中是什么意思?

我这里有这段代码,但我不熟悉语法. STACK16_SIZE = 100hstack16 db STACK16_SIZE dup (?) 我认为 dup 意味着我们声明了一个数组类型的变量,因为这是一个堆栈,但我不确定.那么 dup 在 TASM 中究竟是什么意思? 解决方案 STACK16_SIZE dup (?) 表示将括号内的数据复制STACK16_SIZE次.相当于写?, ?, ..
发布时间:2021-09-29 19:29:42 其他开发

如何在 Tasm 中将字符串转换为数字?

我编写了一个读取字符串并将其转换为数字的程序.以十进制系统输入的数字的字符串表示形式.转换的结果在寄存器 ax 中.我用的是 tasm16. 如何转换更大的字符串(大于 65535)? 模型小堆叠 100h打印字符串宏消息移动啊,09hmov dx,offset msg21 小时尾端数据段cr equ 0dhlf equ 0aherrorInput db '错误输入',cr,lf,'$'i ..
发布时间:2021-09-29 19:29:24 其他开发

程序集连接两个字符串

我想连接两个字符串,但是在输出中而不是得到最终的连接字符串,我得到了一行奇怪的字符和空格,也许有人可以帮我一点忙.我想将结果保存在s3中.这是代码 数据段STR1 DB“在此处输入第一个字符串-> $"STR2 DB“在此处输入第二个字符串-> $"STR3 DB"CONCATEnatedD STRING:-> $"STR11 DB“第一字符串:-> $"STR22 DB“第二个字符串:-> $ ..
发布时间:2021-05-02 20:26:12 其他开发

相对跳出范围0020h字节

我一直在尝试为“ shell”编写一个基本的 com 文件。 我几乎可以在 NASM 中汇编相同的代码。 但是该代码不会在中汇编> TASM ! 我遇到了这类错误:相对跳转超出范围 我在Google上抬了一下,以查找有关跳转的信息。但是,除了将这种跳跃分为相对较短的跳跃的想法外,我找不到其他东西。 还有更整洁的选择吗? 这里是代码: .model tiny CR ..
发布时间:2020-10-25 23:04:14 其他开发