Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
寄存器寻址模式与直接寻址模式
我在试卷中遇到过这个问题 它指出 哪种给定的寻址模式更快 为什么 寄存器寻址方式 直接寻址方式 现在根据我的说法 寄存器寻址模式应该更快 因为寄存器是计算机中最快的存储位置 这是正确答案吗 请帮忙 谢谢 两种寻址模式之间的区别是 地址的来源
Assembly
x8616
addressingmode
汇编8086监听键盘中断
我有与此完全相同的问题 边画边听键盘 https stackoverflow com questions 13970325 8086 listen to keyboard while drawing 但第一个答案 接受的答案 只听键盘一次
Assembly
x8616
keyboardinterrupt
汇编基础知识:输出寄存器值
我刚刚开始学习汇编语言 我已经陷入了 在屏幕上显示存储在寄存器中的十进制值 的部分 我使用 emu8086 任何帮助将不胜感激 model small Specifies the memory model used for program
Assembly
DOS
x8616
emu8086
在 x86 程序集中将整数打印到控制台
当我在 16 位汇编中添加两个值时 将结果打印到控制台的最佳方法是什么 目前我有这个代码 CODE START mov ax 1 put 1 into ax add ax 2 add 2 to ax current value mov ah
Assembly
x8616
DOS
16bit
即使我确实为变量设置了初始值,数据段也没有被初始化
我已经编写了一个代码 该代码应该生成某种数字列表 但是即使我为它们分配了初始值 我的数据段变量也没有被初始化 This is how DS 0000 looks when I run it 这是我的代码 但数据段只保留垃圾值 MODEL s
Assembly
initialization
DOS
x8616
memorysegmentation
在 REP MOVSW 之前 PUSH CS / POP DS 的目的是什么?
为什么在下面的代码中我们压入代码段 PUSH CS 然后将其弹出到数据段 POP DS 我将这些行明确指定为 line1 和 line2 请告诉我 MOVSW 在这里是如何工作的 IF HIGHMEMORY PUSH DS MOV BX D
Assembly
x8616
realmode
我试图在 AAM 指令之后使用 AX 中存储的值将其除以 2,为什么它不适用于 2 位数字输出?
英语不是我的母语 请原谅输入错误 我将在此处显示的代码是一项作业 我真的需要了解发生了什么事 我在 DosBox 0 74 和 TASM 汇编器中使用 Intel 8086 语法 当我必须除以 2 时 代码的问题在于三角形的面积 注意 程序
Assembly
x8616
tasm
DOSBOx
x86 Assembly:很难找到无限循环挑战的想法
我打算和我的朋友们进行一场类似于 corewars 的比赛 我们使用与原始游戏相同的内存网格 在游戏中 我们每个人都应该写一个 保险箱 它是一个不超过 25 行的无限循环 每个 安全 都有一个技巧或代码可以停止循环 从而破坏 安全 例如 S
Assembly
x8616
corewars
自定义键盘中断处理程序
我正在尝试编写一个简单的程序 将标准键盘中断替换为自定义的键盘中断 以减少变量 但是 如果不调用旧处理程序 它就无法工作 这是我的中断处理程序 handler proc push ax push di dec EF pushf when t
Assembly
DOS
MASM
x8616
interrupthandling
在汇编程序中将十进制转换为二进制
我的第一个汇编程序需要帮助 我必须将用户输入的值从十进制转换为二进制 我不知道如何将值显示为小数 以及下一步应该做什么 谁能一步一步指导我下一步做什么 model small stack 100h data txt1 db Enter bi
Assembly
Binary
Decimal
DOS
x8616
查找输入字符串中的子字符串
我有这个汇编程序 我需要在我输入的主字符串中找到子字符串 我的问题是 即使我输入了两个完全不同的单词 它总是输出 找到的单词 我不知道我的循环或条件的哪一部分是错误的 请帮我弄清楚 另外 请建议一些可用于检查子字符串的字符串指令 以便我可以
string
Assembly
x8616
strStr
为什么使用 mov/cmp 而不是带有两个内存操作数的 cmp? [复制]
这个问题在这里已经有答案了 我在执行二分搜索程序代码时发现了以下语句 l1 mov si low cmp si high 为什么我们需要将 low 存储在 si 中然后与 high 进行比较 不可以直接写cmp low high 你不能写c
Assembly
x8616
instructions
MOV
计算段:距绝对地址的偏移量
我可以计算一个地址Segment Offset as Segment 0x10 Offset 但如何计算相反的情况呢 例如 我怎样才能从0xF4170 to F400 0170和来自0xACF04 to ABCD 1234 您需要具有起始基
Assembly
x8616
memorysegmentation
8086 asm中的struct类型数据无法打印
outputstring macro x push ax push dx mov ah 9 mov dx offset x int 21h pop dx pop ax endm inputstring macro x push ax pus
Assembly
x8616
MASM
emu8086
无法将 8 位地址移至 16 位寄存器
我正在尝试分配变量来注册 代码如下 ORG 100h var1 DB 10 var2 DB 20 MOV BX var1 error operands do not match 16 bit register and 8 bit addre
Assembly
x86
x8616
emu8086
使用BIOS int 13h访问不同磁头的扇区
我的磁盘每磁道有 63 个扇区 根据我的观察 我假设 我想使用 int 13h 读取 16 位引导加载程序上的扇区 例如 如果我想读取扇区号 63 我将执行以下操作 mov dl 0x80 Drive number mov dh 0 Thi
Assembly
x86
x8616
BootLoader
osdev
将 DB 变量中的字节值加载到 16 位寄存器中(符号或零扩展字节)
我正在使用 MASM 编译器和 DOSBOX 我想将变量的值保存到寄存器中 我想保存num1值转化为cx登记 我怎样才能做到这一点 MODEL SMALL STACK 50H DATA num1 db 5 NL DB 0DH 0AH msg
Assembly
MASM
x8616
DOS
DOSBOx
扩展内联汇编中的约束“Rah”和“Ral”意味着什么?
这个问题的灵感来自于另一个论坛上有人提出的问题 在下面的代码中 扩展内联汇编约束是什么Rah and Ral意思是 我以前没见过这些 include
gcc
x86
x8616
inlineassembly
ia16gcc
如何在 .COM 可执行文件中以相反顺序打印字符串?
我刚刚开始学习汇编语言 我正在尝试以相反的顺序打印 hello world 这意味着 dlrow olleh 问题是我只得到第一个字母作为输出 并且顺序仍然相同 没有任何变化 作为一个新手 很多事情对我来说都是未知的 我犯了很多错误 由于缺
string
Assembly
DOS
Reverse
x8616
装配 x86-16 中的模式 X,为什么平面 1 未打印,而所有其他平面的顺序不正确?
我正在 DosBox 0 74 上的 TASM 3 0 中写入 并且我正在尝试写入Mode x https en wikipedia org wiki Mode X 调整了13小时 无束缚模式 13 http www brackeen co
Assembly
graphics
DOS
x8616
VGA
1
2
3
4
5
6
»