段前缀的使用(0504)

本文为《汇编语言程序设计》0504小节例程。点击链接…进课程主页。

问题:计算ffff:0~ffff:b字节单元中的数据的和,结果存储在dx中

assume cs:code
code segment
    mov ax,0ffffh
    mov ds,ax

    mov bx,0
    mov dx,0
    mov cx,12

 s: mov al,[bx]
    mov ah,0
    add dx,ax
    inc bx
    loop s

    mov ax,4c00h
    int 21h
code ends
end 

问题:将内存ffff:0~ffff:b中的数据拷贝到 0:200~0:20b单元中。
(1)初始方案

assume cs:code
code segment
      mov bx,0
      mov cx,12

  s:  mov ax,0ffffh
      mov ds,ax
      mov dl,[bx]

      mov ax,0020h
      mov ds,ax
      mov [bx],dl

      inc bx 
      loop s

      mov ax,4c00h
      int 21h
code ends
end 

(2)使用附加段

assume cs:code
code segment
        mov ax,0ffffh
        mov ds,ax 
        mov ax,0020h
        mov es,ax

        mov bx,0
        mov cx,12
   s: mov dl,[bx]   
        mov es:[bx],dl
        inc bx
        loop s

        mov ax,4c00h
        int 21h
code ends
end 
上一篇:leetcode56


下一篇:【Linux】常用16进制代表的容量或位置