美文网首页
【汇编语言】第 14 章 端口

【汇编语言】第 14 章 端口

作者: gfson | 来源:发表于2017-07-13 16:13 被阅读0次

版权声明:本文为 gfson 原创文章,转载请注明出处。
注:作者水平有限,文中如有不恰当之处,请予以指正,万分感谢。

14.1 概述

14.2 in 和 out

  • 端口的读写指令只有 in 和 out,分别用于从端口读取数据和往端口写入数据。
  • 在 in 和 out 指令中,只能用 ax 或 al 存放从端口中读入的数据或要发送到端口中的数据。
  • 访问 8 位端口时用 al,访问 16 位端口时用 ax。

14.3 检测点 14.1

  • 答案:
    (1)
mov al, 2
out 70h, 2
in al, 71h

(2)

mov al, 2
out 70h, 2
mov al, 0
out 71h, al

14.4 shl 和 shr 指令

  • shl 是逻辑左移指令。
  • shr 是逻辑右移指令。

14.5 检测点 14.2

  • 答案:
mov bx, ax
shl ax, 1
mov cl, 3
shl bx, cx
add ax, bx

14.6 实验 14

  • 答案:
assume cs:code, ds:data
data segment
s db 9, 8, 7, 4, 2, 0
data ends
code segment
start:  mov ax, 0b800h
mov es, ax
mov di, 160 * 12
mov ax, data
mov ds, ax
mov si, 0
mov cx, 6
print:  mov al, s[si]
out 70h, al
in al, 71h
call number
cmp si, 2
jb slash
je space
cmp si, 5
jb colon
next:   inc si
loop print
mov ax, 4c00h
int 21h
;al->number, es:di->begin
number: push cx
mov ah, al
mov cl, 4
shr ah, cl
and al, 00001111b
add ah, 30h
add al, 30h
mov byte ptr es:[di], ah
mov byte ptr es:[di + 2], al
add di, 4
pop cx
ret
slash:  mov byte ptr es:[di], '\'
add di, 2
jmp next
colon:  mov byte ptr es:[di], ':'
add di, 2
jmp next
space:  mov byte ptr es:[di], ' '
add di, 2
jmp next
code ends
end start

相关文章

网友评论

      本文标题:【汇编语言】第 14 章 端口

      本文链接:https://www.haomeiwen.com/subject/gwnwhxtx.html