您的位置:首页 > 运维架构

汇编语言 王爽(第三版) 实验4 [bx]和loop的使用

2016-11-06 09:01 483 查看
assume cs:code

code segment

mov ax, 20h
mov ds, ax  ;change 0:200~0:23F into 20h:0~20h:3Fh to avoid using another register

mov bx, 0   ;bx serves as the offset address as well as data assigned to the address

mov cx, 64

s:  mov [bx], bl    ;mistake: mov [bx], bx  ds:[bx] is 1 Byte, bx is 1 word
inc bx
loop s

mov ax, 4c00h
int 21h

code ends

end


编程

汇编源程序中,注释怎么写?
inc bx    ;(bx) = (bx) + 1


写的程序中有一处错误没有发现
mov [bx], bx
:ds:[bx]是指一个内存单元,是1Byte;而bx是一个通用寄存器,大小为1word。此行程序应该为
mov [bx], bl


编译、连接、调试

又出现了
Unable to open input file
,考虑两个原因:

原因目录下的文件夹名字有空格文件名的长度
SUCCESS

FAILURE

文件名的长度:(图中所示实验并不严谨,应该用以8个字符为文件名的asm文件与以9个字符为文件名的asm文件相对比)

(摘自《现代操作系统》P178,4.5.2 MS-DOS文件系统 P3)

尽管MS-DOS的目录是可变大小的,但它使用固定的32字节的目录项,MS-DOS的目录项的格式如图4-31所示。它包含文件名、属性、建立日期和时间、起始块和具体的文件大小。在每个分开的域中,少于8+3个字符的文件名左对齐……

MS-DOS文件名格式 filename.ext,文件名 <= 8个字符

如何打开路径中有文件名带有空格或长文件名的文件?

(源自网络)

取前面6位,然后在后面加上
~1<
4000
/code>。你可以输入C:\>cd c:\docume~1
进入Documents and settings文件夹。当截取前面的6个字母之后出现重复时,可以将1改为2,依此类推。如果存在documents and settingsssssss 则表示为
docume~2
,那么当Documents and settings被删除时,这个“不重复”的文件名documents and settingsssssss,用8.3表示法仍要表示成
docume~2
,因为这个1、2、3已经占位不会改变了。

g命令的使用

-g 0012
表示执行程序到当前代码段(段地址在CS中)的0012h处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: