标签: tasm

asm改变cmd背景颜色

我写了改变文本颜色的部分,但我找不到改变背景颜色的方法,这段代码用于tasm汇编:

model small
stack 256
.data
ent db 0ah,0dh,'$'
array  db 2,4,5,6
       db 7,8,9,5
       db 1,2,3,4
       db 5,6,7,8
temp dw 0
.code
main :
    mov  ax,@data
    mov  ds,ax

    mov ah, 06h
    mov al, 0
    mov cx, 0
    mov dh, 79
    mov dl, 79
    mov bh, 4h

    int 10h
Run Code Online (Sandbox Code Playgroud)

这是我的代码,但它不起作用:

  mov ah, 0bh
    mov bh, 01h
    mov bl, 2h

    int 10h

    mov ah, 02h
    mov dl, 34h

    int 21h


 mov ax,4c00h ; exit from program
 int 21h

end main
Run Code Online (Sandbox Code Playgroud)

x86 assembly dos bios tasm

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

师8086/8087 1/3 = 3?

我有一个很大的问题fdiv!!!! 我试图划分1/3所以这就是我所做的

.model small
.stack 100h 
.data 

var1 dd 1
var2 dd 3 
var3 dd 2
resultado dt 0.0

.code 

mov ax,@data 
mov ds,ax 
finit 
fild var1
fild var2
fdiv
fstp resultado
ffree 

.exit 
Run Code Online (Sandbox Code Playgroud)

你可以看到我将结果移动到resultado因为我看不到结果st(0)(我正在使用tasm所以我只能在调试器中看到变量)结果应该是3EAAAA3A但我得到了40400000...那就是3!!! 这怎么可能??我试过交换变量而没有!你能帮助我吗??=(

x86 assembly fpu tasm x87

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

Turbo Assembler 的使用

我使用的是IBM处理器,而且我才刚刚开始深入研究x86汇编。现在我已经通读了一本汇编书籍,我决定测试一个简单的程序(在屏幕上打印一个感叹号的程序):

.MODEL SMALL
.CODE
     MOV AH,2h
     MOV DL,21h
     INT 21h
     INT 20h
END
Run Code Online (Sandbox Code Playgroud)

现在,在名为Peter Norton's Assembly Language Book for the IBM PC的书中有一个类似的例子,它是这样的:

.MODEL SMALL
.CODE
     MOV AH,2h
     MOV DL,2Ah
     INT 21h
     INT 20h
END
Run Code Online (Sandbox Code Playgroud)

我假设这个程序会根据 ASCII 表打印一个星号,但我无法测试,因为我不知道如何处理 TASM,因为我几乎没有将它安装在包含英特尔处理器的戴尔 Inspiron 上(这应该意味着IBM 系统)。在 TASM 的命令提示符下,我最终输入了以下代码行,以便组装我称为 EXCLAMAT.asm 的程序并运行它:

C:\TASM>TASM EXCLAMAT.asm;
C:\TASM>TLINK EXCLAMAT;
C:\TASM>TD EXCLAMAT.exe
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,一个对话框告诉我:“程序没有符号表”

我做错了什么?非常感谢!

assembly dos tasm

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

Stack 100h和Org 100h有什么区别?

我正在尝试审查汇编语言,我注意到堆栈有100h.有人可以帮我解释一下吗?谢谢!

assembly tasm

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

在目录汇编程序中显示隐藏文件

帮我修改我的程序.程序必须在目录中显示隐藏文件,但它不起作用.当cx = 2时,程序还会显示未隐藏的文件:

.model     tiny
.code
org  100h         ; ???-file
start:
push cs         ;cs=ds
pop ds          

mov ah, 9       ;show message on screen
lea dx, msgpathrequest
int 21h

mov ah, 0Ah     ;write directory by keyboard
lea dx, path     
int 21h        

lea dx, pathstring 
push dx         
add dl, byte ptr[pathactual]    
xor al, al      
adc dh,al       
mov di, dx      
mov byte ptr[di], al

mov ah, 3Bh     ;change directory
pop dx          
int 21h
jc no_such_directory  

mov ah,1ah
mov dx,offset dta
int 21h

;find …
Run Code Online (Sandbox Code Playgroud)

assembly dos tasm 16-bit

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

mov al,byte [si + bx]变为mov al,[bx + si + 1]

在试图为提供一个完整的工作(调试)例如这个问题,我无法理解的汇编代码.我有点生锈与旧的DOS + TASM组合.

这是我的asm代码(print.asm):

.MODEL SMALL
.STACK 64
.DATA
    string DB 'Something'
    len equ $-string

.CODE

Entry:
    mov ax, @data   ;make DS point to our DATA segment
    mov ds, ax

    xor bx, bx    
    mov si, offset string

Char:
    mov al, byte[si + bx]
    mov ah, 2
    mov dl, al
    int 21h

    inc bx
    cmp bx, len
    jnz Char

Fin:
    mov ax, 4c00h
    int 21h

END Entry
Run Code Online (Sandbox Code Playgroud)

我聚在一起

tasm print.asm
tlink print.obj
Run Code Online (Sandbox Code Playgroud)

导致16位可执行文件print.exe.

在测试时,我很惊讶地看到程序输出

omething …
Run Code Online (Sandbox Code Playgroud)

assembly tasm

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

程序集跳出范围

我正在开发汇编项目(使用 tasm),并且在跳跃时遇到了一个非常奇怪的问题,我得到的错误是:相对跳转超出范围(数字)字节,据我了解,当您尝试跳转时对于太多行,这里是(我认为)相关代码:

    IDEAL
MODEL small
STACK 100h

proc keyUsagePaint 
    mov bx,[playerSize]
    mov ah,[byte ptr keyHolder]
    push [playerX]
    pop [tempX]
    push [playerY]
    pop [tempY]
    ;Checking the key and jumping accordingly.
    keyUsageForPaint:
    cmp ah,77
    je moveRight
    cmp ah,72
    je moveUp
    cmp ah,75
    je moveLeft
    cmp ah,80
    je moveDown
    cmp ah,26
    je decBrushSize
    cmp ah,27
    je incBrushSize
    cmp ah,2
    je changeColor
    cmp ah,3
    je changeColor
    cmp ah,4
    je changeColor
    cmp ah,5
    je changeColor
    cmp ah,6
    je changeColor
    cmp ah,7
    je changeColor
    cmp ah,8 …
Run Code Online (Sandbox Code Playgroud)

x86 assembly tasm x86-16

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

该汇编代码有问题吗?

这段代码是使用Turbo Assembler汇编的,但是当我尝试在DOSBox中运行它时,它冻结并且DOSBox消失。这有什么问题吗?

TITLE SAMPLE PROGRAM
.MODEL SMALL
.STACK 64
.DATA
.CODE
MYCODE PROC
    MOV AX,04
    MOV BX,0212
    CMP AX, BX
    JG action1
    JLE action2
action1:
    ADD AL, 30
    JMP exit
action2:
    ADD BL, 20
    JMP exit
exit:
    MOV AX, 4CH
    INT 21H
MYCODE ENDP
END MYCODE
Run Code Online (Sandbox Code Playgroud)

assembly runtime-error tasm dosbox

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

YASM mov 指令给出错误:操作数 1 的大小无效

我正在尝试做一些来自 TASM 的基本 YASM,这行代码会出错:

mov [var], 7
Run Code Online (Sandbox Code Playgroud)

我已经定义,像这样的变量:var db 5
即使在尝试这样做var: db 5之后仍然出错并说:

错误:操作数 1 的大小无效

assembly tasm yasm

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

在 x86 中使用方括号

我想得到 2 个不同的东西:
(1)(bp 处的值)16(数学加法)类似于:mov ax, [bp] + 16
(2)bp+16 的值(地址 bp+16)

为了得到(1)我试过:

mov ax, bp+16  
Run Code Online (Sandbox Code Playgroud)

但它给出了一个错误。

对于(2)我试过:

mov ax, [bp+16]  
Run Code Online (Sandbox Code Playgroud)

哪个有效。(我希望我做对了)。


为什么汇编看不懂评价:

mov ax, bp+16
Run Code Online (Sandbox Code Playgroud)

但是可以理解:

mov ax, [bp+16]  
Run Code Online (Sandbox Code Playgroud)

因为加法不是使用+符号定义的,那么幕后发生了什么?

assembly tasm x86-16

0
推荐指数
1
解决办法
163
查看次数

标签 统计

assembly ×10

tasm ×10

dos ×3

x86 ×3

x86-16 ×2

16-bit ×1

bios ×1

dosbox ×1

fpu ×1

runtime-error ×1

x87 ×1

yasm ×1