汇编语言(王爽 第三版)检测点和实验

左心房为你撑大大i 提交于 2019-11-28 22:57:37

第一章
检测点1.1

  1. 13
      (8kb = 8 * 1024 = 2^13)

  2. 1024 0 1023

  3. 8*1024 1024
      (1 byte = 8 bit,计算机以byte为存储单位)

  4. 1024^3 1024^2 1024

  5. 2^6 1 2^4 2^2
      (kb = 2^10 Mb = 2^20 Gb = 2^30)

  6. 1 1 2 2 4

  7. 512 256
      (8086的寄存器为16位寄存器,一次可以读取两个字节,80386为32位寄存器)

  8. 二进制

第二章
检测点2.1
1)
AX = F4A3h
AX = 31A3h
AX = 3123h
AX = 6246h
BX = 826Ch
CX = 6246h
AX = 826Ch
AX = 04D8h
AX = 0482h
AX = 6C82h
AX = D882h
AX = D888h
AX = D810h
AX = 6246h

mov ax,2
add ax,ax
add ax,ax
add ax,ax

检测点2.2
1)00010h 1000fh
(0001h+0000h 0001h+ffffh)

2)1001h 2000h
(偏移地址的范围为0000-ffff,内存单元=段地址*16+偏移地址,当偏移地址最小时,段地址最大,偏移地址最大时,段地址最小)

检测点2.3
4次修改IP,最后IP为0

第三章
检测点3.1
1)
mov ax,1
mov ds,ax
mov ax,[1000] AX = 2662h
mov bx,[1001] BX = E626h
mov ax,bx AX = E626h
mov ax,[0000] AX = 2662h
mov bx,[0002] BX = D6E6h
add ax,bx AX = FD48h
add ax,[0004] AX = 2C14h
mov ax,0 AX = 0000h
mov al,[0002] AX = 00E6h
mov bx,0 BX = 0000h
mov bl,[000C] BX = 0026h
add al,bl AX = 000Ch

CS = 2000h,IP = 0,DS = 1000h
mov ax,6622h AX = 6622h
jmp 0ff0:0100h CS = 0ff0 IP = 0100h
mov ax,2000h AX = 2000h
mov ds,ax DS = 2000h
mov ax,[0008] AX = C389h
mov ax,[0002] AX = EA66h
mov ax,6622h AX = 6622h
数据和程序表达上没有区别,只跟存储的地方有关,存在数据段中即为数据,存在程序段中就是程序

检测点3.2
1)
mov ax,2000h
mov ss,ax
mov sp,10h

mov ax,1000h
mov ss,ax
mov sp,0

实验三:

assume cs:cdsg
    
cdsg segment
    mov ax,2000H
	mov ss,ax
	mov sp,0
	add sp,10
	pop ax
	pop bx
    push ax
	push bx
	pop ax
	pop bx

	mov ax, 4c00H
	int 21H

cdsg ends

end

实验四:

assume cs:code
code segment
   mov ax,cs
   mov ds,ax
   mov ax,0020h
   mov es,ax
   mov bx,0
   mov cx,17h
  s:mov al,[bx]
    mov es:[bx],al
    inc bx
    loop s
    mov ax,4c00h
    int 21h
code ends
end

(1)复制的是什么?从哪里到哪里?
复制的是如上代码段数据,从mov ax,cs到loop s
(2)复制的是什么?有多少个字节?你如何指导要复制的字节的数量?
复制的是机器指令对应的机器代码,共23个字节,用debug命令U显示出代码段,用代码段的结束地址减去代码段的起始地址就是代码长度

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!