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

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 汇编语言 王爽(第三版) 实验4 [bx]和loop的使用_第1张图片 汇编语言 王爽(第三版) 实验4 [bx]和loop的使用_第2张图片
    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。你可以输入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处

你可能感兴趣的:(汇编)