标签: tasm

这些线在装配中做了什么?

我对装配很新.我总是对数字感到困惑有人可以帮助我吗?我正在使用TASM ...所以8066汇编器有什么好的参考我可以使用吗?

SCREEN_CLEARER:
mov ax,1720h
mov cx,2000
mov bx,0
L2:
mov es:[bx],ax
add bx,2
loop L2
ret
Run Code Online (Sandbox Code Playgroud)

我真的不知道1720h,2000是什么.我也不太清楚如何阅读移动es:[bx],ax

非常感谢你

assembly masm tasm

2
推荐指数
1
解决办法
313
查看次数

如何将HEX转换为DECIMAL?

我计划将X变量转换为十进制.我很难使用turbo汇编程序,你能帮忙吗?

code segment     ;inicio de un segmento unico
assume cs:code,ds:code,ss:code
org 100h       ;localidad de inicio del contador
main  proc     ;procedimiento principal

mov ax,cs
mov ds,ax   ; INICIO 

mov ax, x

mov ah,4ch ;comienzo del fin de programa
int 21h    ;fin del programa

main endp

x dw 0A92FH

code ends   ; fin del segmento de codigo
end main    ;fin del ensamble
Run Code Online (Sandbox Code Playgroud)

非常感谢

assembly tasm

2
推荐指数
1
解决办法
3万
查看次数

8086大会 - DIV猿人,IP无休止地跳到一个奇怪的位置

我一直坚持这个问题一天,没有找到任何相关的信息..

在我的代码中有一个部分需要一个数字(例如259)并将它的数字分成数组插槽.

SEPERATE_DIGITS:
    mov ax,RESULT               ; result is the number im working on. RESULT dw 259h
    mov si,0
    SEPERATE_DIGITS_LOOP:
        div TEN                 ; TEN dw 10h
        add dl,30h              ; fix-up to print later on
        mov SEPERATED[si],dl    ; store separated digit in my array.
        inc si
        cmp ax,0
    jne SEPERATE_DIGITS_LOOP
Run Code Online (Sandbox Code Playgroud)

我一直在turbo调试器上调试..第一部分工作正常.(25转到ax,9转到dx)..下一个分区,IP转到ape并且只是跳转到命令"db FE"并且一次又一次地在无限循环中.

我到底做错了什么?问:

x86 assembly tasm x86-16

2
推荐指数
1
解决办法
799
查看次数

dw、db 和 是什么意思?(问号)TASM 结构中的意思是什么?

我是汇编新手,现在我试图弄清楚dw、和 中的db、 和?意味着什么struc

例如这里:

struc segment_descriptor
  seg_length0_15        dw      ?
  base_addr0_15         dw      ?
  base_addr16_23        db      ?
  flags                 db      ?
  access                db      ?
  base_addr24_31        db      ?
ends segment_descriptor
Run Code Online (Sandbox Code Playgroud)

x86 assembly tasm

2
推荐指数
1
解决办法
6543
查看次数

汇编程序无法找到现有文件

我的TASM已安装到我的TASM,TLINK和文件所在的文件夹中.具体来说就是C:/TASM/BIN.运行单个.asm文件时没有问题但是当我包含另一个文件以便我的代码看起来模块化时,会出现这个问题.

我已经包含了6个文件,其中包括printMzpos1.kt.(文件扩展名在汇编文件包含中无关紧要.)我的主文件名是c.asm.该图像显示printMzpos1.kt在我的TASM挂载的文件夹中:

在此输入图像描述

这是我的代码的快照.我包括printMzpos1.kt之后main endp和之前end main.printMzpos1.kt包含打印框的过程.

.model small
.386
.stack 64

.data
colorW      db  0Fh
xPos        dw  ?
currmode    db  ?
horLineLen  dw  120
verLineLen  dw  70

include macro.kt

.code

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MAIN proc far
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

mov ax, @data
mov ds, ax
mov es, ax

setVidMode  
cls

call printMzPos1
;call move3Boxes

retVidMode  
mov ax, 4c00h
int 21h

MAIN endp

include printMzPos1.kt
include printMzPos2.kt
include printMzPos3.kt
include …
Run Code Online (Sandbox Code Playgroud)

x86 assembly dos tasm dosbox

2
推荐指数
1
解决办法
6508
查看次数

Intel 8086 TASM - 非法号码


我一直在做一个程序,我需要将寄存器的值与某个数字进行比较.虽然在emu8086上模拟我没有任何问题,但是TASM编译器在所有行上都给出了错误:

cmp bx, 0xF7F0h
Run Code Online (Sandbox Code Playgroud)

错误如下所示:

***Error*** div.ASM(163) Illegal number
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?
当然我可以将F7F0h值放入另一个寄存器或变量中,但我更喜欢将它保持为常量值.

assembly tasm x86-16

2
推荐指数
1
解决办法
721
查看次数

DOS DEBUG跟踪命令无法正常运行

我有abc使用循环语法打印的ASM代码。这是我的代码

;abc.com
.model small
.code
org 100h
start:
    mov ah, 02h
    mov dl, 'a'
    mov cx, 3h

ulang:
    int 21h
    inc dl
    loop ulang

    int 20h
end start
Run Code Online (Sandbox Code Playgroud)

COM程序正常运行 在此处输入图片说明

debug abc.com跟着的结果-t看起来像 int 21之后的NOP

问题是,为什么要NOP在之后INT 21而不是INC dl?据我所知它应该INC dl那么LOOP xxxx三次,然后INT 20

当我-t连续按下时,它会一直到不知道的地方直到崩溃,这意味着找不到INT 20h

debug abc.com跟是不同的-u 红色arr表示循环

它显示INC dlLOOP 0107指示循环。

仅供参考:

  • Win 7 Ultimate SP 1 32位
  • GUI Turbo …

debugging assembly dos tasm x86-16

2
推荐指数
1
解决办法
289
查看次数

我可以在TASM中将al推入堆栈吗?

我是集会的初学者,任何帮助将不胜感激.这是我的代码:

.MODEL SMALL

.DATA  
Textstring db "I'm a string$"
.CODE
START:

mov dx, Textstring
push dx
getche:
    mov ah, 06h
    int 21h
    push al



 END START
Run Code Online (Sandbox Code Playgroud)

我一直得到操作数类型在第8行上不匹配的错误,操作或指令的参数在第13行上有非法大小.
我猜测问题是我试图推进AL堆栈.无论如何我可以把内容推AL到堆栈上吗?我正在尝试创建一个代码,我提示用户输入一个字符并将该字符返回给调用它的程序.

assembly dos tasm x86-16

2
推荐指数
1
解决办法
401
查看次数

如何用汇编语言读取命令行参数?

我正在使用TASM汇编程序,我似乎找不到保存命令行参数甚至输出它们的方法.我试图做int 21hdx=0081hah=09h.它没有做任何事情,虽然我已经读到它是这样做的方式.

我添加了我认为应该复制的代码并显示我输入的参数:

mov dx, 81h
mov ah, 09h
int 21h
Run Code Online (Sandbox Code Playgroud)

assembly dos tasm command-line-parsing x86-16

2
推荐指数
1
解决办法
878
查看次数

浮点表达式的汇编时求值

我目前正在熟悉 Turbo Assembler 2.0 的可能性;我很高兴发现浮点常量可以指定如下。

SomeVariable dd 72.0; corresponds to 042900000h
Run Code Online (Sandbox Code Playgroud)

我假设可以在汇编时评估表达式,例如

SomeVariable dd 1.0 / 4.0; does not assemble
Run Code Online (Sandbox Code Playgroud)

但这似乎是不可能的。即使是在汇编时从相对简单的表达式中生成常量是否确实不可能?

floating-point x86 assembly expression tasm

2
推荐指数
1
解决办法
79
查看次数