汇编笔记(五)

复习
(1)[bx]的作用:作为偏移地址与ds配合
 debug和masm对指令的处理不同:
 在debug中 mov ax,[0]是指将ds:0处的数据送入al([0]是八位所以不可以是ax)中
 在masm中 mov ax,[0]只是作为mov ax,0应该写为mov bx,0 mov al,[bx]或者是mov al,ds:[3]

(2)loop和cx的合作
 loop为循环,cx为循环的次数

(3)debug中的p命令和g命令的使用

(4)loop和[bx]
 [bx]:
 dx=dx+内存的八位数据
 dl=dl+内存八位数据


 第六章
(1)dw即define word定义字型数据,db
(2)代码
assume cs:code,ds:date,ss:stack

date segment
 dw 0123h,0456h,0789h,0abch,0bcdh,0cdeh
date ends

stack segment
 dw 0,0,0,0,0,0,0,0
stack ends

code segment
start:  mov ax,stack
  mov ss,ax
  mov sp,16  ;设置栈顶ss:sp指向stack:16
  mov ax,date
  mov ds,ax ;ds指向date段
  mov bx,0 ;ds:bx指向date段中的一个单元
  mov cx,8
  s:push [bx]
    add bx,2
    loop s ;以上将date段中的0-16中的一个单元8个字型数据依次入栈
  

   ;使数据逆序输出
    mov bx,0
    mov cx,8
    s0:pop [bx]
       add bx,2
    loop s0
    mov ax,4c00h
    int 21h
code ends
end
   

原文地址:https://www.cnblogs.com/yuelingzhi/p/2410440.html