【汇编语言】第 14 章 端口

版权声明:本文为 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

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 27,710评论 8 105
  • 计算机通过执行指令序列来使机器得以工作,所以对于每一系列的计算机都有指定的一组指令集供计算机使用,这组指令...
    国才阅读 5,020评论 1 10
  • 指令是使计算机执行某种特定操作的二进制编码。8086 CPU指令系统有133条指令,通常分为数据寻址方式和程序寻址...
    刀月水阅读 835评论 0 1
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 957评论 0 1
  • 4 往后一连数日,墨渊日日来此,也不见什么言语,只默默调了元神将他滋养一番,完事再潇洒的离去。 那样子,竟是比他还...
    九皋__阅读 205评论 0 1