汇编语言-王爽-实验4

时间:2022-07-01 01:16:35

这学期在学汇编,没怎么自己动手编程过,结果到了中期编不出程序来,实在太尴尬了

特此来补各个实验。

 

4-1

1  0:200~0:20b 为什么等同于 0020:0~0020b?


0:200 =0x16h+200=00200h

所以拆分成不同的形式即可转换



assume cs:code
code segment
   mov ax,0200h
   mov ds,ax        ;将数据段内存进行更改

   mov bx,0
   mov cx,64       

   s:mov [bx],bx ;里面加的值是否默认为十进制
     inc bx
     loop s

     mov ax,4c00h
     int 21h

code ends
end

a.在汇编中   bx一般用于存储偏移地址   [bx] 即代表对应的偏移地址

b.8086/8088 的汇编语言里,以字母开头的16进制数字,前面必须加 0    如:0a3h

4-2

同上

4-3

a.使用debug调试程序,cx寄存器的初始值存储的内容就是此程序的大小

b.段寄存器支持从其他寄存器中赋值但不允许立即数直接复制给段寄存器(cs不能直接把存储的段地址赋给ds)

assume cs:code
code segment

   mov ax,cs
   mov ds,ax

   mov ax,0020h
   mov es,ax
   mov  bx,0
   mov  cx,0015h

   s:mov al,[bx]  ;mov操作一次是多少位的
    mov es:[bx],al
    inc bx
    loop s

    mov ax,4c00h
    int 21h
code ends
end




操作数分类


立即数  存储器操作数  寄存器操作数