您现在的位置是: 首页 > u盘信息 u盘信息

dosbox怎么用jmp指令循环使用_dos循环执行命令

tamoadmin 2024-08-23 人已围观

简介1.微机原理中设计一个程序,求10个无符号数的最大值2.1、编写一个程序,使用INT 21H的2号功能,实现“Hello, world!”的显示①安装好dosbox,然后找到“dosbox...options.bat”,双击它,(别急着点dosbox.exe)。图1②在弹出的文本编辑器(如,记事本)中调整设置,找到[autoexec]所在行,添加两行(以d:\为例):mount c: d:\ c:

1.微机原理中设计一个程序,求10个无符号数的最大值

2.1、编写一个程序,使用INT 21H的2号功能,实现“Hello, world!”的显示

dosbox怎么用jmp指令循环使用_dos循环执行命令

①安装好dosbox,然后找到“dosbox...options.bat”,双击它,(别急着点dosbox.exe)。

图1

②在弹出的文本编辑器(如,记事本)中调整设置,找到[autoexec]所在行,添加两行(以d:\为例):

mount c: d:\

c:

图2

③下载并安装好nasm(一种小的汇编软件)

建议在dosbox中汇编并运行(按图3下文件、打开、解到d:\123);也可以在windows下汇编,dosbox里运行(这个我之前写过……)

图3

④打开dosbox,依次输入命令

cd 123

nasm

可以看到nasm安装成功并且能使用了,下一步是准备汇编代码

⑤在d:\123目录下新建一个文本文档123.txt

输入以下代码并保存(XXX可以随便改,$符号要保留)

org 256

jmp begin

s db 'hello, world! @author: XXX$'

begin:

mov dx,s

mov ah,9

int 21h

mov ax,4c00h

int 21h

⑥在dosbox的黑窗口里面继续输入以下命令

nasm 123.txt -o 123

123

然后就可以看到输出的字符串

hello, world! @author: XXX

微机原理中设计一个程序,求10个无符号数的最大值

需要DOSBox0.74(noconsole)

1、将下面3条指令写入2000:0开始的内存单元中,利用这3条指令计算2的8次方。

2、movax,1

addax,ad

jmp2000:3

扩展资料:

1、DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据:十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASCⅡ码字符。

2、在DEBUG中输入数据有两种方法:提示方法和非提示方法。在用提示方法时,用户可以输入要求输入数据的命令,后跟数据所要输入的地址。然后用户就可以看到该地址中已有内容及一个冒号提示符。此时用户可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到短横(-)提示符。在运用非提示方法时,用户可以输入要输入数据的内存地址以及要输入的字节。但与使用字处理程序或正文编辑程序时不一样,在使用DEBUG时,用户不能直接移动光标到一入口点输入或修改数据,而要一次输入一个或几个字节。

3、在使用DEBUG时可以只涉及内存中的数据,从而一般都要指定所要处理的内存地址,地址的输入格式是:[段地址]:[位移]。如果没有输入地址,DEBUG将定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用,这一专用区域用于建立DOS与程序之间的联系。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。

1、编写一个程序,使用INT 21H的2号功能,实现“Hello, world!”的显示

DATA SEGMENT

ARY DW 025AH,1357H,776H,0040H,05C3H,36D0H,720FH,082AH,019DH,0124H

ORG 0050H

MAX DW 0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, ES:DATA

ORG 100H

START: MOV CX, 9H ;循环次数=数据个数-1

MOV AX, SEG ARY

MOV ES, AX

LEA SI, ARY

MOV AX, ES:[SI] ;最大值初值

SCHMAX: ADD SI, 2

MOV DX, ES:[SI]

CMP DX, AX

JLE NEXT

MOV AX, DX

JMP NEXT

NEXT: LOOP SCHMAX

FINISH: MOV ES:[MAX], AX

INT 3 ;暂停,以便查看运行结果

CODE ENDS

END START

;;编译链接生成exe文件, 在Win7的DOS环境用Debug运行通过;

;;运行结果,找到这10个数的最大值并保存到max单元中,

;;在Debug中,运行至INT 3 暂停,可用 D ES:0050 命令查看到该最大值。

;int 21 上世纪DOS下的功能调用,研究它意义不大了,不过还是写了一个;tasm+dosbox通过assume cs:code,ds:code code segment org 100Hstart: mov bx,cs mov ds,bx mov es,bx mov si,offset buffloop1: mov dl,[si]; or dl,dl jz exit mov ah,2 int 21h inc si jmp loop1exit: mov ax,4c00h int 21h buff: db "hello world!",0dh,0ah,0 code endsend start